私のC++ main
関数では、ヒープメモリ(スタックメモリとは対照的に)を使用する変数へのポインタがある場合など - アプリケーションが終了した後で自動的に割り当てが解除されますか?私はそう思うでしょう。プログラムが途中で終了したときにC++でdeleteを呼び出す理由はありますか?
ヒープ割り当ては、終了時にメモリが自動的に割り当て解除される状況では使用されないと思っても、常に削除することをお勧めしますか?
たとえば、これは何か問題がありますか?
int main(...)
{
A* a = new A();
a->DoSomething();
delete a;
return 0;
}
私は場合に多分を考えていた私は、リファクタリング(または他の誰かリファクタリング)そのコードをしてdelete
が本当にneccecaryあるアプリケーション、他の場所でそれを置きます。
Brian R. Bondy(C++での影響を具体的に説明しています)の回答と同様に、Paul Tomblinにはgood answer to a C specific questionもあります。これにはC++デストラクタも含まれています。
上記の重複は約Cであり、C++の問題であるデストラクタに関するいくつかの重要な情報が欠落しています。 –
@Brian、私の答えは、デストラクタにも言及しています(今)。これを削除すべきだという私の気持ちは依然として立っています。 –
デストラクタについてどういう意味が分かりません - 明確にしてください。 –