2017-10-01 9 views
1

은 내가 몇 가지 기본적인 C.Malloc이 제대로 인쇄되지 않습니까?

다음

txt 파일입니다 배우고 사용하고 .txt 인 파일이 있습니다

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; 
     } 

} 

내가 찾고 있어요 : 여기

8 
12 48 15 65 16 82 9 72 

하면 코드 배열을 malloc하려면, 0, 0, 0, 0, 0 .....의 출력을 계속 얻는다. 내 인쇄 진술이 틀렸다는 생각이 들지만 C 팁을 처음 접했을 때 어떤 조언이 필요한가요?

+0

을 [I-1]'그러나 인쇄'목록 [i]를'. 오타로 끝내기 위해 투표를하십시오 (의견이 수용 가능한 대답을 제공한다면 질문을 삭제할 수 있습니다). – dasblinkenlight

+0

fscanf와 feof를 올바로 사용하기에 좋은 직장입니다. –

답변

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]); 
    }