gpt4 book ai didi

C fileIO 不符合预期

转载 作者:太空宇宙 更新时间:2023-11-04 07:52:25 25 4
gpt4 key购买 nike

我正在尝试用 c 语言对二进制文件进行简单的写入和读取,但我遇到了困难。这是我尽可能精简的代码:

typedef struct car_struct{
char* make;
char* model;
short year;
long price;
int uniqueID;
}Car;

int main(){
FILE *fp = fopen("filename", "wb+");

Car car = {"s","s",1,1,1};
fwrite(&car, sizeof(Car), 1, fp);

rewind(fp);
Car* c;

fread(c,sizeof(Car),1,fp);


printf("%d \n",c->price);
}

我认为代码会将一个结构写入文件,然后读取它,并打印出其中一个字段。然而,实际结果是程序终止,什么也没有打印出来。似乎未定义的行为已经悄悄进入某个地方,但我不确定在哪里。代码有什么问题?

最佳答案

问题出在行 Car* c; 您创建了一个指向某个随机地址的指针。您可以使用 malloc(sizeof(Car))

定义您希望 c 保留的内存大小

关于C fileIO 不符合预期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52999859/

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