2009-03-29 17 views
0

私は動的メモリ割り当てについて学んでいますが、説明したいことが1つあります。C++動的メモリ割り当て

ダイナミックアロケーションの用途の1つは、ダイナミックなサイズの配列で、それは私には明らかです。別の用途は、通常のオブジェクトです。

どうすればいいですか?通常はオブジェクトがスタックにプッシュされ、ポップされる可能性がありますか?

動的メモリ割り当てを使用する必要がある状況をどのように認識していますか?

+0

メモDMA ==ダイレクトメモリアクセスではなく、動的メモリ割り当て –

+0

ok、thx for correction – Ikke

答えて

7

ダイナミックメモリのもう1つの問題は寿命です。ダイナミックメモリ(new、mallocなど)はヒープ上に存在します。適切なメモリ機能を介してコードによって明示的に削除されるまで、生き続けるでしょう。これは、長命のオブジェクトに非常に便利です。

非動的メモリまたはスタックの寿命は非常に限られています。スタック上に割り当てられたメモリは、そのメソッドが実行されている間だけ周囲に存在します。メソッドが終了すると、メモリは自動的に再利用されます。

+0

OK、私はそれを得ると思います。このメソッドを「生き残る」べきすべてのオブジェクトは動的に割り当てられるべきですか? – Ikke

0

対処しなければならないアイテムの数が分からないことはよくあることです。それらはファイルなどから来る可能性があります。あなたのプログラムの外から来たアイテムを格納するには、動的なサイズの配列が必要です。

PS:必ず「配列」ではなくstd :: vectorのようなSTLクラスを使用してください。

0

割り当てが必要なオブジェクトの数がわからない場合は、動的割り当てが必要です。

関連する問題