首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在结构中使用指针读取文件

在结构中使用指针读取文件
EN

Stack Overflow用户
提问于 2013-12-31 01:46:22
回答 3查看 1.5K关注 0票数 0

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

阅读:

代码语言:javascript
运行
复制
//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;
}

并写道:

代码语言:javascript
运行
复制
//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;
}
EN

Stack Overflow用户

发布于 2013-12-31 03:02:21

指针只有在它们产生的应用程序进程中才有意义。如果你将它们写到一个文件中,就像你在这里做的那样,你读回的值将是没有意义的--它们很可能指向未初始化的内存,或者指向正在被完全用于其他事情的内存。

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

票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20845119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档