所以,我做了一个看起来像这样的函数:
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)修改了第一个参数,所以当我删除[]时,它会给我堆损坏。我该怎么办?
答案 0 :(得分:1)
您必须始终跟踪bufCopy
的原始分配,只有delete
d。 tmp
可能只指向它的一部分(在某个缓冲区内),所以你不能delete
它。