这是一个函数调用(所以它只是整个程序的一部分)。它会产生分段错误。我想这是由“指针是一个局部变量”造成的?本地指针分割错误?
int fileExists(const char *fname){
int i = 0;
fseek(fs, sizeof(NODE)*i, SEEK_SET);
NODE* pointer;
fread(pointer, sizeof(NODE), 1, fs);
return 1;
}
更新时间:
typedef struct node {
char fname[MAX_NAME];
short fstart;
} NODE;
int findStart (const char *fname){
fs = fopen("Directory", "w+");
NODE* pointer = malloc(sizeof(NODE));
int i;
for(i=0;i<numberNodes;i++){
fseek(fs, sizeof(NODE)*i, SEEK_SET);
fread(pointer, sizeof(NODE), 1, fs);
if(strcmp(pointer->fname, fname)==0)
return pointer->fstart;
}
return 0;
}
所以,如果我想通过节点目录中的文件来运行,并找到合适的节点“FSTART”,我可以做到这一点,而不需要自由分配给“指针”的内存?
你或许应该作出这样的修改一个单独的问题。 – Mysticial