問題タブ [stack-memory]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - ヒープとスタックのメモリはどのように管理、実装、割り当てられていますか?
C/C++ では、変数、関数、メンバー関数、クラスのインスタンスをスタックまたはヒープに格納できます。
それぞれどのように実装されていますか?どのように管理されていますか (ハイレベル)? gcc は、スタックとヒープに使用するメモリのチャンクを事前に割り当ててから、要求に応じて解放しますか? 元のメモリはRAMから来ていますか?
スタックではなくヒープに関数を割り当てることはできますか?
明確化
ヒープメモリとスタックメモリの実装と管理について本当に質問しています。参照された質問を読んだ後、それに対処するものは何も見つかりませんでした...リンクをありがとう
c++ - ヒープとスタックのメモリはどのように管理、実装、割り当てられますか
重複の可能性:
ヒープおよびスタックメモリはどのように管理、実装、割り当てられますか?
C ++のスタック、静的、ヒープ
C / C ++では、変数、関数、メンバー関数、クラスのインスタンスをスタックまたはヒープのいずれかに格納できます。
それぞれはどのように実装されていますか?それはどのように管理されていますか(高レベル)?gccは、スタックとヒープに使用されるメモリのチャンクを事前に割り当ててから、要求に応じて実行しますか?元のメモリはRAMから来ていますか?
関数をスタックではなくヒープに割り当てることはできますか?
ヒープとスタックのメモリの実装と管理について本当に質問しています。参照された質問を読んだ後、私はそれに対処するものを見つけられませんでした...リンクをありがとう
c++ - スタックとヒープが衝突するとどうなるか
スタックとヒープが衝突するとどうなるか知りたいです。誰かがこれに遭遇した場合は、シナリオを説明してください。
memory - LuaJitはスタック/ヒープサイズを増やします
LuaJitでメモリ不足エラーが発生し続けます。スタックまたはヒープのサイズを増やすにはどうすればよいですか?
ありがとう
java - どのオブジェクトがメモリのどの部分に作成されますか?
上記のコードで、どのオブジェクトと参照がメモリのどの部分に作成されますか?(つまり、ヒープとスタック)
(出典:c-sharpcorner.com)
c# - コレクションから削除されたときに値型はいつ発生しますか?
私がstruct
このような単純なものを持っているとしましょう:
次に、この構造のインスタンスのコレクションがあるとしましょう。
値型と参照型を理解しているので、値型はスタックに割り当てられるため、値型オブジェクトをインスタンス化する関数が終了すると、値型オブジェクトはメモリからクリアされます。これは、次のコードでは次のことを意味します。
ローカル変数のコピーwint
がに追加されweightedInts
ますが、ローカル変数自体は完了後にメモリから削除されますAddWeightedIntToList
。
まず第一に:これは正しいですか?
次に、このコピーはどこwint
に保存されますか?関数が完了すると消えてしまうので、スタックに置くことはできません(右?)。これは、コピーが一緒にヒープに保存されることを意味しますweightedInts
か?そして、それは参照型のインスタンスであるかのように、削除された後に収集されたガベージですか?
この質問がどこかの記事で回答されている可能性は確かにあります。その場合、その記事へのリンクは完全に受け入れられる回答になります。私はそれを見つけることができませんでした。
c - スタックではなくヒープにメモリを割り当てたいのはなぜですか?
ヒープとスタックに関する他のいくつかの質問を読みましたが、それらは、なぜそれらを使用するのかというよりも、ヒープ/スタックが何をするかに焦点を当てているようです。
スタック割り当ての方が高速であり(スタックポインタを移動するのではなく、ヒープ内の空き領域を探す)、使い終わったときに割り当てられたメモリを手動で解放する必要がないため、ほとんどの場合、スタック割り当てが優先されるように思われます。 。ヒープ割り当てを使用するために私が見ることができる唯一の理由は、関数内にオブジェクトを作成し、それをその関数スコープ外で使用したい場合です。これは、スタック割り当てメモリが関数から戻った後に自動的に割り当て解除されるためです。
私が気付いていないスタック割り当ての代わりにヒープ割り当てを使用する他の理由はありますか?
c# - .NET のスタックとヒープ
実際のプログラミング経験において、この STACK と HEAP の知識は実際にどのように役に立ちましたか? 塹壕の話は?それとも、この概念はプログラミングの本を埋めるのに適していて、理論に適しているのでしょうか?
c++ - スタックとヒープにオブジェクトの配列を作成する
次のコードを検討してください。
スタック上に myarray のオブジェクトの配列を作成する方法と、ヒープ上にオブジェクトの配列を作成する方法を教えてください。
c# - C#でヒープの整合性とスタックサイズを確認する
C#コードにストレスをかけ、メモリ不足の状態で実行したときに発生するクラッシュを追跡しようとしています。ただし、場合によっては、OutOfMemoryExceptionを取得する代わりに、プログラムがクラッシュして終了することがあります。これは通常、バッファのオーバーランによるメモリの破損、またはスタックオーバーフロー(または破損)が原因で発生します。
それで、ヒープの整合性をチェックする方法はありますか、それともスレッドに残っているスタックの量をチェックする方法はありますか?
速度の理由で安全でないコードをたくさん使用しているので、どこかにコードが破損している可能性があります。残念ながら、破損が発生した後、クラッシュはランダムな間隔で発生します。C#がバッファオーバーランを検出するとアプリを閉じることは理解していますが、強制的にチェックを行う方法はありますか?
ありがとう。