gpt4 book ai didi

c++ - 删除字符指针数组

转载 作者:行者123 更新时间:2023-11-30 00:39:55 25 4
gpt4 key购买 nike

我想删除一个char *数组,应该很简单吧? char * = new char[length]; 然后使用 delete[] char;?

此外,我无法使用 std::string 进行此练习。

我收到这个错误:

HEAP CORRUPTION DETECTED: after Normal block (#137) 0x00794B50.
CRT detected that the application wrote to memory after end of heap buffer.

这是我的代码:

class myClass
{
char * myString;
...
public:
myClass::myClass( const char * tempStr);
};

myClass::myClass( const char * tempStr)
{
int length = strlen(tempStr);
myString = new char(length + 1); //+1 for null char
strcpy(myString, tempStr);
myString[length] = '\0';
delete[] myString; //error occurs here
}

现在,我知道,这段代码是完全不切实际的,但它仍然会抛出我试图解决的相同错误,所以如果我们能解决这个问题,那么我应该很高兴。从我读过的内容来看,这应该没问题吗?我要重申,对于这个练习,我不能使用 std::string

最佳答案

你弄乱了括号。应该是:

myString = new char[length + 1];

方括号将创建一个数组。普通括号将只分配一个带有那个操作数的构造函数。

关于c++ - 删除字符指针数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7700750/

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