2
嗨我有删除对象数组的问题。 每当我开始我的代码,它工作得很好,但当我关闭, 我收到错误:0xC0000005:访问冲突读取位置0xcccccccc。代码如下所示:无法删除对象数组C++
我初始化一个对象的实例,并立即创建一个空的数组。
Class* classObject[15];
之后,我在for循环中定义了空数组。
for(int i = 0; i < 15; i++){
classObject[i] = new Class();
}
当应用程序关闭时,下面的代码应该删除内存不足的数组。
for(int i = 0; i < 15; i++){
delete classObject[i];
}
而不是成功关闭,我得到访问冲突错误。 我该如何解决这个问题,并在哪里? 另外,有没有其他方法可以在for循环中创建对象?
你是否已经释放了这些指针?或者将它们设置为NULL或否则更改指针?使用智能指针(如['std :: shared_ptr'](http://en.cppreference.com/w/cpp/memory/shared_ptr))_might_可以缓解这个问题。 –
对于这样的问题,最好能提供一个演示行为的完整示例。请参阅http://sscce.org –
您可能会通过一些较早的操作损坏空闲空间舞台。另一种可能是你在'Class'的析构函数中做了一些坏事。 –