首页 > 解决方案 > 尝试 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);
}

标签: recursionfile-io

解决方案


推荐阅读