指针指针c char初始化

指针指针c char初始化,第1张

概述我怀疑在C中初始化这个: char** A_Function(){ char** charList = new char*[2]; charList[0] = "abcde"; charList[1] = "fghij"; return charList;} 编译此代码时没有问题,但我不确定该行为. 1 – char列表:char *在堆上好吗? 2 – cha 我怀疑在C中初始化这个:

char** A_Function(){    char** charList = new char*[2];    charList[0] = "abcde";    charList[1] = "fghij";    return charList;}

编译此代码时没有问题,但我不确定该行为.

1 – char列表:char *在堆上好吗?
2 – charList [n_position]在堆或堆栈上?

我不明白char * [2]真正意味着什么,是不是意味着:
它是一个静态数组,它的每个元素都有一个指向char的指针

如果它是静态的,那么这个数组将在堆栈上分配,所以这个数组是一个巨大的BUG制造者?

如果我是对的,如何在堆上分配它?

解决方法 也许一张照片会有所帮助:

当您从A_Function返回时,charList被销毁,但其他两个保持不变.因为你从A_Function返回charList的值没有问题 – 你只需要在不同的变量中保存相同的值,至少假设你实际使用了A_Function的返回值(即,将它分配给某个东西) ).

如果你没有保留这个值,你就会有内存泄漏 – 你将不再拥有指向你在免费商店中分配的两个指针数组的指针,因此你将无法释放它们.

总结

以上是内存溢出为你收集整理的指针指针c char初始化全部内容,希望文章能够帮你解决指针指针c char初始化所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1219026.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存