c-我们如何分配内存来返回一个字符**



我有这个方法。。。

CCD_ 1,它将返回一个指向字符指针的指针。

有可能做…吗。。

char** allStrings = getStrings()?

或者我必须做一些像。。。

char** alStrings = malloc(sizeof(char*) * numberOfStrings);
allStrings = getStrings()
//where numberOfStrings is some int.

第一个显然是正确的
修复拼写错误后的第二个等于第一个加上内存泄漏。

还请参阅函数合约,以访问所有这些字符串,并进行解除分配。

您可能会得到一个以NULL结尾的、以0结尾的字符串数组,但解除分配可能更为棘手。

可能的交易选择:

  • 静态数据,多线程/递归/多调用陷阱,不需要也不允许显式释放
  • 全部在一个块中,只释放主指针
  • 必须分别释放每个组件

如果getStrings()为您分配,那么char **allStrings = getStrings()当然可以。

相关内容

  • 没有找到相关文章

最新更新