2017-10-01 17 views
1

私はここではいくつかの基本的なC.Mallocが正しく印刷されていませんか?

を学ぶために使用しています.txtファイルを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 ..に新しいですか?

+0

を持っています。タイプミスとして閉じようとする投票(コメントが受け入れ可能な回答を提供する場合は、あなたの質問を削除することもできます)。 – dasblinkenlight

+0

fscanfとfeofを正しく使用するための良い仕事 –

答えて

0

あなたは `リストを設定し、[I-1]` `が、リスト[i]は`を印刷しているので、これは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]); 
    } 
関連する問題