2012-02-21 8 views
0

HI私は、ファイルからデータを取り込もうとした約600,000のデータを処理できるプログラムをCで構築しようとしています。それらを単純なプログラムで配列に格納しますが、 "filname.exe"が停止したように見えます。私は約25のデータを持つ同じプログラムをチェックしたところ、正常に動作しました。何が問題なのかを教えてください。私のコードは次のようである:私のプログラムは、大容量データ用にプログラムを使用している間に "filename.exe"が動作を停止したことを示しています。

#include<stdio.h> 
int main() 
{ 
    FILE *ptr_file; 
    int i,j; 
    unsigned int x[1024][512]; 

    ptr_file =fopen("output.txt", "r"); 

    if (!ptr_file) 
     printf("the file can't be opened"); 

    for (i=0;i<1024; i++) 
    { 
     for(j=0;j<512;j++) 
     { 
      fscanf(ptr_file,"%d\n", &x[i][j]); 
     } 
    } 
    printf("%d",x[1024][511]); 
    printf("%d",x[0][2]); 
    fclose(ptr_file); 

    return 0; 
} 

答えて

2
unsigned int x[1024][512]; 
// ... 
printf("%d",x[1024][511]); 

配列インデックスは1023, 511する必要があります。

+0

ありがとう....それは私の愚かな間違いでした... :) –

+0

今私は新しい問題を抱えました...私は私のプログラムを実行するとき、私は千以上の行に出力を表示する必要があります。ディスプレイは私の出力の最後の400/500行の周りにしか表示されません。どのように私は私のすべての出力を表示することができます。私はGNU - GCCでコードブロック10を使用しています –

1

私の出力をすべて表示するにはどうすればいいですか?

出力をファイルに書き込みます。

関連する問題