程序无法达到代码的某个部分

时间:2014-02-20 19:37:30

标签: c conditional

我完全不确定为什么我的代码会这样做。在下面的代码片段中,它永远不会到达代码的底部(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:

1 个答案:

答案 0 :(得分:0)

当您使用0计数函数时,您期望什么?

你不这样做吗?你为什么不告诉我们?