不可能分段错误

时间:2014-10-04 01:09:15

标签: c segmentation-fault

我正在运行以下代码:

if (tuple != NULL) {

    printf("tuple is not null\n\n"); fflush(stdout);
    if (tuple->tuple != NULL) {
        printf("tuple tuple is not null\n\n"); fflush(stdout);
        int i;
        for (i = tuple->tuple_dimension -1; i >= 0 ; i--)
            if (tuple->tuple[i] != NULL) {
                free(tuple->tuple[i]);
            }
            else
                break;
        free(tuple->tuple);
    }
    printf("i got here :D\n\n"); fflush(stdout);
    free(tuple);
}

它在第一次运行时完美运行,但第二次它似乎在第二次if的情况下失败并且给我一个分段错误。我收到了这个输出:

tuple is not null
tuple tuple is not null
i got here :D
tuple is not null
Segmentation fault (core dumped)

根据我的理解,它既没有进入if正文也没有跳过它,所以它在调用tuple -> tuple时失败了,但如果我们知道tuple不是,那怎么可能呢?空?

0 个答案:

没有答案