問題タブ [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++ のスタックとヒープのアドレス
修正:
ポインタアドレスとポインタが指すアドレスの概念をめちゃくちゃにしてしまったので、以下のコードを修正しました。そして今、私が望むものを出力します。変数a、c、i、j、k、pはスタック上にあり、変数b、dはヒープ上にあります。静的変数とグローバル変数は別のセグメントにあります。皆様、どうもありがとうございました!
これら 2 つの概念が深く議論されていることは知っていますが、次のコードについてはまだ疑問があります。
私の結果は次のとおりです。
これは非常に興味深いことです。なぜなら、グローバル変数 N と、関数 f の 2 つの静的変数 (l と m) を除いて、他のすべての変数のアドレスが一緒になっているように見えるからです。(注: コードと結果は変更されており、ここに記載されている内容とは一致しません。)
スタックとヒープについてよく調べました。「new」でオブジェクトを作成した場合、それはヒープ上にあるというのが常識です。また、ローカル変数 (上記のサンプルの j や k など) はスタックにあります。しかし、私の例ではそうではないようです。それは異なるコンパイラに依存していますか、それとも私の理解が間違っていますか?
皆様、どうもありがとうございました。
java - Java プリミティブはスタックまたはヒープのどちらに配置されますか?
非プリミティブ (オブジェクト) がヒープに置かれ、メソッドがスタックに置かれることはわかっていますが、プリミティブ変数はどうでしょうか?
- アップデート
答えに基づいて、ヒープは特定のオブジェクトの新しいスタックとヒープを持つことができると言えますか? オブジェクトがプリミティブ変数と参照変数を持つことを考えると..?
java - Javaの列挙型...どこで作成されますか?
C#の列挙型はスタック上にあるので、Javaのどこで列挙型が作成されたのか疑問に思いました。スタック上?ヒープ上?不思議な他の場所で?
C#の列挙型はJavaの列挙型よりも原始的です。これは、それらがスタック上に作成される理由を説明している可能性があります...
彼らはどこにいる?見つかりません!
ありがとう
functional-programming - F# で非常に大きなデータを返すのはどのくらい効率的ですか?
F# に Matrix クラスがあり、(+) 演算子をオーバーロードするとします。次に、次のようになります。
C/C++ と比較すると、次のようになります。
ここで、スタック メモリに割り当てられる C++ バージョンとは対照的に、F# では行列res
がヒープ メモリに割り当てられることに注意してください。res
ここまでは順調ですね。両方のバージョンで合計演算の結果への「参照」が必要な場合に何が起こるかを観察します。
ここで何かが欠けているのでしょうか、それとも F# の (+) 演算子は、浅いコピーと深いコピーの動作のために、C/C++ の対応する演算子よりも効率的になりますか?
c# - スタックとヒープをCシャープで
どのオブジェクトがスタックに格納され、どのオブジェクトがメモリのヒープ部分に格納されるかについて、メモリの割り当てがどのように行われるかを誰かに教えてもらえますか?
c++ - C++スタック変数とヒープ変数
スタック上に存在するC++で新しいオブジェクトを作成するとき(私がほとんど見た方法で)、これを行います。
ヒープ上にオブジェクトを作成するときは、次のように呼び出しますnew
。
しかし、これを行うと:
スタックベースのオブジェクトを作成しますが、それと一番上の例の違いは何ですか?
c# - アプリケーション内からスタック上の値型とヒープ上のオブジェクトを監視する
これがばかげた質問なら許してください。アプリケーション(コンソールアプリなど)の実行中に、スタックとヒープの内容をプログラムで「監視」できますか?これを行うAPIはありますか?
c - 最新のコンピューターのスタックおよびヒープスペース
Cで書き込む場合、プログラムを起動したときにメモリで使用可能なスタックスペースを確認するにはどうすればよいですか?ヒープスペースはどうですか?
プログラムの実行中に使用されているメモリの量を確認するにはどうすればよいですか?
iphone - iPhone OS でスタックとヒープ メモリ バウンドのサイズはどのように決定されますか?
スタックとヒープの最大サイズは内部的にどのように設定されていますか? その最大サイズをどのように決定できますか? どのプロジェクトにも使用していません。しかし、これは単なる好奇心からです。