
こんにちは
配列を使った際、うまいことDeleteが働いてくれないため
メモリが開放されずに困っています、
初歩的な質問で申し訳ありませんが、質問させて下さい。
下記のプログラムでは、
単純にメモリ確保とメモリ開放を行っていると思うのですが…
注釈にもあるように、Deleteでメモリが開放されません。
#include <iostream>
using namespace std;
class Base
{
};
class Sub : public Base
{
char size[256];//領域確保用
};
void main()
{
Base* obj[10000];
for(int cnt=0;cnt<10000;cnt++)
{
obj[cnt] = new Sub;
}
for(int cnt=0;cnt<10000;cnt++)
{
delete obj[cnt];//メモリが開放されない
}
}
ポインタが怪しいと思うのですが、
どうにかうまいことメモリを開放することは出来ないでしょうか。
よろしければ返答お願いいたします。
No.1ベストアンサー
- 回答日時:
正しくdeleteするためには,deleteされるオブジェクトの静的な型 (今回ではBase) にvirtualの付いたデストラクタがないといけません。
そうでない場合,deleteされるオブジェクトの静的な型とnewした型 (今回ではSub) が異なる場合は未定義動作とされています。
なるほど、調べてみれば、スーパークラスのデストラクタには
Virtualを付けておいた方が良いようですね。
そうしないとスーパークラスのデストラクタだけが実行されるようですね…。
ありがとうございました
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA Bookの表示、非表示 1 2022/09/16 20:44
- Visual Basic(VBA) 配列の勉強をしています。使用する変数の意味、検索条件の書き方が難しいです。 2 2022/09/15 14:06
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- Visual Basic(VBA) Dateserialで データ抽出 2 2022/06/26 21:07
- Excel(エクセル) マクロ(データ取得と転記)について教えてください 3 2022/12/24 12:18
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:02
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:00
- その他(プログラミング・Web制作) atcoder python コードへの助言 2 2022/08/12 15:31
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
構造体の配列について(2)
-
リスト構造をファイルに出力
-
reallocでメモリを再確保するに...
-
プロンプト入力 malloc( )
-
テキストファイルを二次元配列に
-
配列の中身のdelete
-
領域の確保について
-
変数に文字列を代入する方法を...
-
こんな画面構成にしたいのですが
-
C言語 ポインタ型引数の呼び出...
-
newでrealloc?
-
2次元配列を動的にメモリ確保...
-
Visual C++を 用いたテキストフ...
-
プログラミングに関する問題が...
-
#pragmaについて
-
配列ポインタの関数中のメモリ領域
-
C言語特有の文法や概念について
-
ビット演算について
-
char a[]="thank you for comin...
-
[EXCEL] INDEX関数の不具合?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
c言語のポインタへの文字列入力...
-
allocってなんですか?
-
newしないオブジェクトについて
-
malloc呼び出し時のセグメンテ...
-
入れ子になった構造体について
-
ヒープメモリの解放について
-
ビットをローテートするプログ...
-
C++で、メンバもヒープに確保さ...
-
void*型のデータサイズ
-
Win32APIでのメモリ管理について
-
配列の添え字の最大数とは?
-
C++のnewで確保したメモリーの...
-
プログラムが途中で強制終了し...
-
C言語 mallocとfreeについて
-
win32APIのHeapAlloc()の使い方...
-
LoadLibraryでAccess Violation...
-
グローバル変数のサイズ
-
MFCのCStringについて
-
メモリ不足になってしまう。
-
ヒープの実際の限界値は?
おすすめ情報