关于结构的简单问题:
struct xint {
int number;
char string[12];
};
int main(int argc, char *argv[])
{
struct xint offsets, *poffsets;
poffsets=&offsets;
FILE * pFile = fopen("file","rb");
fread(poffsets,1,16,pFile);
printf("Number %d\nString %s\n",offsets.number,offsets.string);
}
我得到这个输出
Number 12345
Segmentation fault
我知道我可能在结构、指针和内存分配方面做错了一些事情。预先感谢:)
最佳答案
您的问题是您直接从文件中读入结构,而不检查结构对齐。改为这样做:
fread(&offset.number,1,sizeof(offsets.number),pFile);
fread(&offset.string,1,sizeof(offsets.string),pFile);
关于C 结构体 : segmentation fault,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5983089/