gpt4 book ai didi

c++ - 二维数组被函数修改后如何删除?

转载 作者:行者123 更新时间:2023-11-28 08:00:58 25 4
gpt4 key购买 nike

所以,我做了一个看起来像这样的函数:

const char **myFunction(char *string)
{
char *bufCopy = new char[strlen(string)];
strcpy(bufCopy,string);
char *tmp = func1(bufCopy);

const char **RetVector = new const char* [6];
RetVector[0] = tmp;

return RetVector;
}

func1(即 strtok)修改了第一个参数,因此当我删除 [] 时,它会导致堆损坏。我能做什么?

最佳答案

必须始终跟踪您的bufCopy 的原始分配,只有那个可以被删除d。 tmp 可能只指向它的一部分(在缓冲区的某处),所以你不能删除它。

关于c++ - 二维数组被函数修改后如何删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11484293/

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