gpt4 book ai didi

c++ - 为三重指针分配内存

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

函数 somefunction() 接受一个三重指针作为参数。

int somefunction(tchar ***returnErrors);

如何为returnErrors参数分配内存?

最佳答案

猜测。 . .

您可以将 returnErrors 视为指向字符串数组的指针。

  1. 第一个 * 实现指向数组的指针tchar(或单个字符串字符)
  2. 第二个 * 实现了一个指向字符串数组。
  3. 最后一个 * 是您可以更改的returnErrors 并传回新的内存。

为此删除内存(愚蠢的例子,在 SomeFunction 中分配内存)

tchar ** errors;
// Oops it appears I need to pass back two error strings (+ 1 for null on end, so we know there are no more - thanks tlholaday)
errors = malloc(sizeof(tchar*) * 3);

// the first string has length 20 (+ 1 for null terminator)
errors[0] = malloc(sizeof(tchar) * 21);

// the second string has length 30 (+ 1 for null terminator)
errors[1] = malloc(sizeof(tchar) * 31);

// ensure the last is null
errors[2] = 0;

*returnErrors = errors;

注意:调用函数需要知道 SomeFunction 已分配内存并需要释放它。

关于c++ - 为三重指针分配内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/540822/

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