最近、ポインタの操作を開始し、いくつかのテキストファイルをつなぎ合わせることになっている小さなスクリプトを作成しました。
ただし、fputsを呼び出そうとすると、コアダンプ/セグメンテーションエラーが発生します。ファイルポインタの保存方法が原因だと思います。ファイルがそれを配列に保存しているのを見つけて、後でそれを取得しようとします。
FILEポインタは構造体に保存されます。誰かが私のせいをすぐに見つけますか?私は非常に感謝されます!
構造体:
typedef struct{
int listSize;
int listCapacity;
FILE *fileStream;
}FileList;
構造体の作成
FileList fileList;
fileList.listSize=0;
fileList.listCapacity=1;
fileList.fileStream=calloc(fileList.listCapacity,sizeof(FILE));
次に、を呼び出して構造体を配列に追加します
void addFile(FileList* list, FILE* file)
{
list->fileStream[list->listSize]=*file;
}
しかし、私が電話するとき
char* buffer[10];
size_t result=0;
result = fread(buffer,1,10,&fileList.fileStream[ii+currentGroupOffset]);
fputs(*buffer,outPutFile);
クラッシュします。配列の境界を超えないように、値ii+currentGroupOffsetを監視しようとしました。
すべての助けが必要です!:)