c - 将 char** 分配给空数组时,Seg 错误核心转储

标签 c arrays pointers c-strings

这是我的代码:pipeArr[i] =commands 行导致段错误核心转储。

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

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

最佳答案

您从未向pipeArr分配任何值,因此它只是一个指向任何特定内容的指针。因此,当您执行 pipeArr[i] = ... 时,您将修改第 i 个元素,但没有任何特殊内容。

关于c - 将 char** 分配给空数组时,Seg 错误核心转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58091602/

相关文章:

c - 切换字母(无字符串或字符串函数)

javascript - 如何在 javascript 中按空格拆分字符串,除非空格出现在 "quote"之间?

c++ - 枚举指针可以指向常量值吗?

c++ - std::function 签名指针 vs 指针引用 = 没有区别?

c - c中的链表实现,运行时报错

使用 calloc 创建字符串

c - 在c中使用int main()时是否必须使用return 0语句?

c - Win32 - 从 cygwin 下的 C 代码回溯

ios - 更改 NSHomeDirectory 中文件的名称

java - boolean 赋值不抓,需要多了解