尝试使用 fopen 和包含 FILE 类型的结构打开文件时,我不断收到段错误。刚接触 C 语言,如果这是一个菜鸟问题,我很抱歉。 结构体代码:
typedef struct _FileInternal {
FILE* fp;
char mem[2];
} FileInternal;
// file handle type
typedef FileInternal* File;
打开文件的代码:
File open_file(char *name) {
File a;
fserror=NONE;
// try to open existing file
a->fp=fopen(name, "r+");
if (! a->fp) {
// fail, fall back to creation
a->fp=fopen(name, "w+");
if (! a->fp) {
fserror=OPEN_FAILED;
return NULL;
}
}
return a;
}
尝试 文件f; f=fopen("newfile.dat"); 返回错误
非常感谢任何帮助!
最佳答案
File
是一个指针类型,它使 a
成为一个指针。 a
永远不会初始化为指向有效的 FileInternal
结构,因此取消引用它可能会导致段错误。
关于c - 使用 FILE 类型的结构时接收段错误 - C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46268033/