首页 > 解决方案 > 将 char** 分配给空数组时转储了 Seg 故障核心

问题描述

这是我的代码: pipeArr[i] = commands 行导致转储了 seg fault core。

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

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

标签: carrayspointersc-strings

解决方案


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


推荐阅读