さて、何が起こっているのかを合理的に把握するために...
csvテーブルから次のような2次元配列にデータを読み込んでいます。
tableFile = fopen(argv[4], "r");
char tableArray[30][50][256];
char c;
int i=0, j=0, k=0;
while(c != EOF){
c = fgetc(tableFile);
switch(c)
{
case ',':
tableArray[i][j++][k]='\0';
k=0;
break;
case '\n':
tableArray[i++][j][k]='\0';
j=0;
k=0;
break;
default:
tableArray[i][j][k++] = c;
break;
}
} //end file transfer
fclose(tableFile);
ファイルを読み取った後、私は無関係な大量のジャンクを実行しますが、問題は、上記のテーブルから取得したデータから何かを印刷しようとすると、printfがおかしくなってしまうことです。
たとえば、私が次のようなことを言ってみるとしたら。
char *string = malloc(256*sizeof(char));
string = tableArray[9][46];
printf("What the heck is going on with this string %s ", string);
%sの後にそのスペースが表示されますか?それは実際には「W」を上書きし、printfは「この強力なHELLOで一体何が起こっているのか」のようなものを表示します
何か案は?!?!
ありがとう!