gpt4 book ai didi

C 结构体 : segmentation fault

转载 作者:行者123 更新时间:2023-12-04 06:26:34 28 4
gpt4 key购买 nike

关于结构的快速问题:

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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com