【发布时间】:2020-05-31 10:52:18
【问题描述】:
我正在尝试在辅助函数内的数组中创建一个结构数组和fread 文件数据。编译程序时,我不断收到incompatible pointer type 错误。这是我当前的代码:
struct fentry *read_fentries(FILE *fp){
fentry *files[MAXFILES];
// EXTRACT FENTRIES AND FNODES FROM FILE
if ((fread(files, sizeof(fentry), MAXFILES, fp)) == 0) {
fprintf(stderr, "Error: could not read file entries\n");
closefs(fp);
exit(1);
}
return files;
}
我的主要问题是如何创建一个预定义大小 (MAXFILES) 的结构数组并从函数中返回它,以便我可以访问 main 中的结构数组。我必须使用malloc 分配内存吗?
【问题讨论】:
-
files是一个指针数组。函数的返回类型只是struct fentry的指针。您可能需要返回类似files[some_index]的内容。尝试返回files[0],它会编译没有错误。 -
fentry未定义。您使用的是 C++ 编译器吗?
标签: c arrays function pointers struct