gpt4 book ai didi

c - fread 错误 - 段错误

转载 作者:行者123 更新时间:2023-11-30 17:05:26 25 4
gpt4 key购买 nike

这是我的代码文件名filewrite.c

#include<stdio.h>
#include <stdlib.h>
void main()
{

int *p;
*p = 5;
FILE *fp1 = fopen("sample.txt","w");
fwrite(&p,sizeof(int),1,fp1);
fclose(fp1);

printf("\n Value of p written into the file is :%d \n",*p);

int *q;
FILE *fp2 = fopen("sample.txt","r");
fread(&q,sizeof(int),1,fp2);
fclose(fp2);

printf("\n Value of q read from the file is :%d \n",*q);

}

Linux 终端上看到的输出:

$>gcc -o filewrite.o filewrite.c

$>filewrite.o

$>Segmentation fault (core dumped)

我可以看到写出的文件sample.txt。但无法理解为什么会有核心转储。

最佳答案

你需要改变

fread(&q,sizeof(int),1,fp2);

fread(q,sizeof(int),1,fp2);

fread 的第一个参数是 void *,并且您向它传递一个指向 int 的指针

<小时/>

并且,为指针分配内存p

int *p;
p = malloc(sizeof(int));

同样适用于q

int *q;
q = malloc(sizeof(int));

关于c - fread 错误 - 段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35284460/

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