程序你看看吧,有问题再问,满意请采纳:
#include<stdio.h>int main()
{
int a1[600] // 存的第一列数据,根据文件行数修改
int a2[600] // 存的第二列数据,根据文件行数修改
int a3[600] // 存的第三列数据,根据文件行数修改
FILE*fp
int k=0
int i
if((fp=fopen("test.in","r"))==NULL) // 打开数据文件
{
printf("cant find the file!")
return -1
}
while(!feof(fp))
{
fscanf(fp,"%d %d %d",&a1[k],&a2[k],&a3[k])
k++
}
printf("读取文件后,数组内的结果显示:\n")
for(i=0i<ki++)
printf("%d %d %d\n",a1[i],a2[i],a3[i])
fclose(fp)
return 0
}
art类型有两个指针成员,sizeof(art)==8。在write函数中,你把两个指针写到文件里去了,而不是把指针所指的word(字符串)写到文件里去了。
所以fread(temp, sizeof(art), 1, fp)这一句把两个指针读到temp起始的空间里了,此时原来指针可能已经释放,所指内存不再由你支配。
你那样做有点像刻舟求剑,指针的确还指向那里,但字符串已经消失了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)