gpt4 book ai didi

c - 程序演示文件IO操作

转载 作者:行者123 更新时间:2023-11-30 20:14:24 24 4
gpt4 key购买 nike

我正在尝试使用 C 编程开始 io 操作。我经常遇到这个错误“段错误核心已转储”。有没有人可以清楚地解释为什么我会收到此错误。以及如何再次避免这个愚蠢的错误?

提前致谢..

struct Subscriber { char *name; char msisdn[10+1]; };

int main() {

FILE * ostream;
ostream = fopen("UsersData.dat","w");
struct Subscriber record;
do {
printf(" Enter subscriber record[name<Ent>msisdn<Ent>] :");
scanf("%s",&record.name);
scanf("%s",&record.msisdn);
printf("Record [ %s | %s ] \n", record.name, record.msisdn);
fwrite(&record, sizeof(record), 1, ostream);
printf(" Do want to Insert new record? [y/n] : ");
fflush(stdin);
} while ('y' == getc(stdin));
fclose(ostream);
printf(" file closed ");
return 0;
}

最佳答案

您的类型 Subscriber 包含一个名为 name 且类型为 char* 的成员;不幸的是,您从未为该指针分配任何内存来指向。当您稍后执行 scanf 时,您会尝试读入不存在的 char 缓冲区。

为什么不将 name 设为数组,例如 msisdn

另外,不要将代码写在难以辨认的矩形 block 中。这……很奇怪。

关于c - 程序演示文件IO操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26424363/

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