重い重量のオブジェクトを作成する可能性のあるライブラリを使用しています。具体的には、私はwaveファイルに関連付けられているオブジェクトを作成しています。オブジェクトが主にスタックまたはダイナミックメモリで構成されているかどうかを検出する方法
Waveオブジェクトのインスタンスを作成する場合(例として)、メモリ内のどこに割り当てられているかを判断する良い方法はありますか?
たとえば、スタック内にstd :: vectorをインスタンス化すると、スタック(ヘッダ情報)にメモリが割り当てられ、実際のコンテナデータがヒープ上に作成されていることがわかります。だから、ほとんどの場合、私はスタックメモリのオーバーフローについて心配する必要はありません。私はまだオブジェクトをヒープで完全にインスタンス化するオプションがありますが。
しかし、オブジェクトの実装についてはわかりません。スタックに大量の配列を作成するライブラリを使用しているとしましょう。これは問題を引き起こす可能性があります。
私の質問:どのようにオブジェクトがメモリ賢明な '重い'を知っているのですか?
短い答えは:できません。少なくとも、あなたがファクトリパートナットを使用しない限り、ヒープ上のオブジェクトを常にインスタンス化します。その場合、答えは常に「ヒープ」です。 –