gpt4 book ai didi

c - 我们如何分配内存以返回一个 char**

转载 作者:太空宇宙 更新时间:2023-11-04 08:42:04 25 4
gpt4 key购买 nike

我有方法...

char** getStrings(); 将返回一个指向 char 指针的指针。

有没有可能做..

char** allStrings = getStrings()?

或者我必须做类似...

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

最佳答案

第一个显然是正确的。
第二个,在修正错别字后,等于第一个加上内存泄漏。

另请参阅访问所有这些字符串和释放分配的函数契约。

您可能会得到一个以 NULL 结尾的以 0 结尾的字符串数组,但释放可能会更棘手。

可能的重新分配选择:

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

关于c - 我们如何分配内存以返回一个 char**,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23157662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com