c语言 fread函数为什么不能使用结构体指针

我使用fread()函数,写入到自己定义的结构体指针,但是这样就报错了。
问题出现在我注释的地方。

typedef struct Student {
    char *name;
} Student;

int main() {
    Student stu = {12, "Danny"};
    FILE *out;
    if ((out = fopen("out.dat", "w")) == NULL) {
        printf("ERROR\n");
        return 0;
    }

    fwrite(&stu, sizeof(Student), 1, out);
    fclose(out);


    FILE *in;
    if((in = fopen("out.dat", "r")) == NULL) {
        printf("ERROR\n");
        return 0;
    }

    Student *stu2;
    fread(stu2, sizeof(Student), 1, in); // 此处出现问题
    printf("%s", stu2->name);
    return 0;
}
阅读 2.3k
1 个回答

一个野指针都没分配内存怎么写入文本内容

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏