2

こんにちは、オブジェクト配列の削除に問題があります。コードを開始すると問題なく動作しますが、終了すると次のエラーが表示されます。コードは次のようになります。

オブジェクトのインスタンスを初期化し、すぐにそこから空の配列を作成します。

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 に答える