recursion - 尝试 fscanf 并应用递归不断出现分段错误
问题描述
我正在尝试读取第一个数字并让它打印那么多数组。指向每个单独的数组并让它减 1 直到它达到 1。程序除了减 1 之外的所有事情。我应用递归的方式一定有问题。
input: output:
2 2
4 4 3 2 1
3 3 2 1
#include <stdio.h>
#include <stdlib.h>
FILE * input;
int num;
int i;
int *array;
void *malloc();
void Decrease(int i, int *[]);
int main(void) {
FILE * input;
input = fopen("halp.txt","r");
array =(int*)malloc(sizeof(int)*num);
fscanf(input, "%d", &num);
printf("%d\n", num);
for(i = 0; i<num; i++){
fscanf(input, "%d", &array[i]);
}
Decrease(i, &array);
return 0;
}
void Decrease(int i, int *array[])
{
if (i == 1)
return;
printf("%d", *array[i]);
Decrease(i, array - 1);
}
解决方案
推荐阅读
- c# - ReSharper 建议将模式匹配代码更改为对象模式
- mysql - 如何将 csv 列复制到多个字段表中?
- python - 我想提取文件名并将其切片以获取一部分并将该部分放入excel的列中。我想为 8 个文件执行此操作
- java - 使用 .readlines() 方法时如何克服“\n”
- regex - 用于提取 url 路径的正则表达式
- docker - docker swarm 中的覆盖网络无法正常工作
- android - 在哪里可以找到在 Play 商店中私下发布应用程序的组织 ID
- python - 使用 Movidius NCS2 的 OpenCV 在使用暗网神经网络时会出错
- file - 使用电报将 csv 文件导入 influxdb 时包含文件名作为标签
- c# - NLOG 无法使用 .NetCore 2.2 在 Oracle 数据库中记录用户名和会话 ID