最近开始使用指针并创建了一个小脚本,应该将一些文本文件拼接在一起。
但是,当我尝试调用 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 确保它不会超出数组范围
有任何帮助!:)