2

您好我在删除对象数组时遇到问题。每当我启动我的代码时,它工作得很好,但是当我关闭时,我收到错误:0xC0000005:访问冲突读取位置 0xcccccccc。代码如下:

我初始化一个对象的实例并立即从中创建一个空数组。

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 循环中创建对象?

4

1 回答 1

3
class A
{
    public:
        A():a(0){};
    private:
        int a;
};

int main()
{
    A* arr[15];

    for(int i=0;i<15;i++)
    {
        arr[i] = new A();
    }
    for(int i =0;i<15;i++)
    {
        delete arr[i];
    }

    return 0;
}

我的代码没有任何错误。您之前删除了该点吗?

于 2012-12-07T12:19:37.100 回答