這是一個函數調用(所以它只是整個程序的一部分)。它會產生分段錯誤。我想這是由「指針是一個局部變量」造成的?本地指針分割錯誤?
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