ヒープとスタックに関する他のいくつかの質問を読みましたが、それらは、なぜそれらを使用するのかというよりも、ヒープ/スタックが何をするかに焦点を当てているようです。
スタック割り当ての方が高速であり(スタックポインタを移動するのではなく、ヒープ内の空き領域を探す)、使い終わったときに割り当てられたメモリを手動で解放する必要がないため、ほとんどの場合、スタック割り当てが優先されるように思われます。 。ヒープ割り当てを使用するために私が見ることができる唯一の理由は、関数内にオブジェクトを作成し、それをその関数スコープ外で使用したい場合です。これは、スタック割り当てメモリが関数から戻った後に自動的に割り当て解除されるためです。
私が気付いていないスタック割り当ての代わりにヒープ割り当てを使用する他の理由はありますか?