C 将字符**分配给空阵列时转储Seg错误核心

C 将字符**分配给空阵列时转储Seg错误核心,c,arrays,pointers,c-strings,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; } 为什么将字符**数组分配给未分配字符***数组的索引会导致seg错误?我有什么办法可以防止这种情况发生吗 您从未为pipeArr指定任何值,因

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

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

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

您从未为pipeArr指定任何值,因此它只是一个指向任何特定对象的指针。所以当你做pipeArr[i]=。。。您正在修改没有任何特殊内容的第i个元素。

不要使用未初始化的变量。特别是,不要取消对未初始化指针的引用。pipeArr不是数组,它是指针。但特别是试图在其程序无权访问或修改的某个位置修改内存中的地址: