Malloc无法正确打印?

时间:2017-10-01 21:56:06

标签: c file-io malloc

我有一个.txt文件,我用来学习一些基本的C。

这是txt文件:

8
12  48  15  65  16  82  9   72

以下是代码:

int main(int argc, char** argv){

        int num;
        int arr[100000];
        int index = 0;
        int size = 0;

        if (argc != 2){
                return 0;
        }

        FILE *inputFile = fopen(argv[1], "r");

        if (inputFile == NULL){
                printf("Error1\n");
                return 0;
        }

/*      while(!feof(inputFile)){
                num = fgetc(inputFile);
                if(isdigit(num)){
                        num = num - '0';=
                        printf("%c\n",num);
                }
        }*/

        while(fscanf(inputFile, " %d", &num) == 1){
                arr[index] = num;
                index++;
        }

        size = arr[0];
        int * list = (int*)malloc(sizeof(int)*size);
        int i;

        for(i = 1; i <= size; i++){
                list[i-1]=arr[i];
                printf("%d\n", list[i]);
        }




        if(!feof(inputFile)){
                printf("error");
                return 0;
        }

}

我期待malloc数组,但我一直得到0,0,0,0,0的输出,.....出什么问题?我想也许我的印刷说法是错误的,但我是C的新手......任何提示?

1 个答案:

答案 0 :(得分:0)

你有9个项目,而不是8个

    size = arr[0];
    //printf("size %d %d\n", size,index);
    int * list = (int*)malloc(sizeof(int)*(index));
    int i;

    for(i = 1; i <= index; i++){
            list[i-1]=arr[i-1];
            printf("%d\n", list[i-1]);
    }