gpt4 book ai didi

c - 使用结构中的指针从文件中读取

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

我尝试使用结构中的指针写入和读取文件。但是当我从文件中读取时,我看到一些垃圾值。我在 Linux 上使用 GCC 4.7.2。需要一些帮助。

阅读:

//read from a file

#include<stdio.h>

typedef struct
{
char* name;
char* phone;
}LISTING;

int main(void)
{
LISTING phoneList[14];
FILE * fp = NULL;

fp = fopen("/media/Study/PhoneDirectory.dat","rb");

if(fp == NULL)
printf("Error opening file!!!");

fseek(fp,0,SEEK_SET);

if(fread(&phoneList[1],sizeof(LISTING),1,fp)==1)
printf("%s %s",phoneList[1].name,phoneList[1].phone);

fclose(fp);

return 0;
}

并写:

//Write to file

#include<stdio.h>

typedef struct
{
char* name;
char* phone;
}LISTING;

int main(void)
{
LISTING phoneList[2];
FILE * fp = NULL;

fp = fopen("/media/Study/PhoneDirectory.dat","wb");

phoneList[1].name = "Santosh";
phoneList[1].phone = "9657681798";

if(fwrite(&phoneList[1],sizeof(LISTING),1,fp)==1)
printf("inserted");

fclose(fp);

return 0;
}

最佳答案

指针仅在它们所源自的应用程序进程中才有意义。如果您将它们写入文件,就像您在这里所做的那样,您读回的值将毫无意义 - 它们很可能指向未初始化的内存,或者完全用于其他用途的内存。

您需要想出另一种方法将此数据写入文件。

关于c - 使用结构中的指针从文件中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20845119/

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