C++のものを削除することに関して全く混乱しています オブジェクトの配列を宣言し、clear()
関数を使用すると、私は完全に混乱します。メモリが解放されたことを確かめることはできますか?例えばC++はベクトル、オブジェクト、フリーメモリを削除します
:
tempObject obj1;
tempObject obj2;
vector<tempObject> tempVector;
tempVector.pushback(obj1);
tempVector.pushback(obj2);
私は安全にすべてのメモリを解放するには、clearを呼び出すことができますか?または、1つずつ削除するために繰り返し処理する必要がありますか?
このシナリオをオブジェクトのポインタに変更した場合、答えは上記と同じになりますか?
ベクトルを指しているという事実以外の第1の場合と第2の場合との違いは何もありません。私はこの質問を広げて、メモリの割り当て/解放がどのように機能すべきか、おそらくポインタについて把握できるようにするべきだと思います。 – Marlon
これは関数スタック内でそれを宣言すると、自動的にデストラクタが終了します。 https://stackoverflow.com/questions/3054567/right-way-to-deallocate-an-stdvector-object –