将char **分配给空数组时,seg Fault核心转储

时间:2019-09-25 05:19:34

标签: c arrays pointers c-strings

这是我的代码:pipeArr [i] =命令导致seg故障核心被转储。

char ***pipeArr;
for (int i = 0; i < numPipes; i++) {
    char** commands = /* a function that returns char** */
    pipeArr[i] = commands;
}

为什么将char **数组分配给未分配的char ***数组的索引会导致seg错误?有什么办法可以防止这种情况?

1 个答案:

答案 0 :(得分:3)

您从未为pipeArr分配任何值,因此它特别指向没有内容的指针。因此,当您执行pipeArr[i] = ...时,您正在修改第i个元素,没有什么特别的。