作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我刚开始我的容器类,但我已经遇到了问题:
class Container
{
private:
string* BasePointer; // The starting pointer.
unsigned int Capacity; // The number of values the container can hold.
public:
Container() // Default constructor.
{
Capacity = 1;
BasePointer = new string[Capacity];
}
~Container() // Destructor.
{
delete BasePointer; // Delete the container to prevent memory leaking.
}
};
我收到错误 Container Classes(26467) malloc: *** error for object 0x100100088: pointer being freed was not allocated
。我做错了什么?
最佳答案
XXX ptr = new XXX[size]
应该与数组版本 delete [] ptr
匹配,而不仅仅是常规的 delete
。
了解 free store management在 C++ 中,正如 James 提醒我们的那样——遵循 rule of three在这种情况下。
关于c++ - 类析构函数中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4346480/
我是一名优秀的程序员,十分优秀!