C - 访问malloc内存后的SIGSEGV

时间:2015-05-30 15:05:13

标签: c

这是导致分段错误的代码片段:

void test_list(char **list)
{
    *list = malloc (100 * sizeof(char));
    *list[0] = 't';
    *list[1] = 'e'; // SIGSEGV here
    *list[2] = 's';
    *list[3] = 't';
}

int main()
{
    char *list;
    test_list(&list);
    return 0;
}

刚刚发生了什么?

1 个答案:

答案 0 :(得分:3)

谨防operator precedence - 改变:

*list[0] = 't';

(*list)[0] = 't';

(依此类推......)