我完全不确定为什么我的代码会这样做。在下面的代码片段中,它永远不会到达代码的底部(printf语句连同3个frees和-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:
答案 0 :(得分:0)
当您使用0计数函数时,您期望什么?
你不这样做吗?你为什么不告诉我们?