0
我不確定爲什麼我的代碼正在執行此操作。在下面的代碼片段中,它永遠不會到達代碼的底部(printf語句以及3個自由度和-1的返回值)。即使我給它一個無效的輸入,它仍然會運行,直到它搜索到數組的所有部分,然後就像沒有問題一樣退出。程序無法到達代碼的某個部分
int findtargetline(char* targ, char* filename, int count, char** depend) {
char* line = malloc(160*sizeof(char));
char* buffer = malloc(16);
FILE* fil = file_open(filename);
int i = 0;
for (i = 0; i < count; i++) {
if (depend[i] == NULL) {
printf("ERROR: MISSING DEPENDENCY DATA STRUCTURE");
return -1;
}
else {
strcpy(line, depend[i]);
line = line + strspn(line, delims);
sscanf(line, "%s ", buffer);
if (strcmp(buffer, targ) == 0) {
free(line);
free(buffer);
fclose(fil);
printf("%s, and %d\n", targ, i);
return i;
}
}
}
printf("wtf");
free(line);
free(buffer);
fclose(fil);
return -1;
}
我覺得答案應該很容易,但我沒有看到它。有人知道爲什麼D:
嘗試正確縮進你的代碼 – Clark
你應該先解決這個問題:'line = line + ...',因爲你以後不能'釋放(行)'。 –
「你沒有問題就退出」是什麼意思?將來,您應該發佈[最小可編譯示例](http://stackoverflow.com/help/mcve)並描述您所看到的更多細節(包括任何錯誤代碼,如果適用)。 – jerry