問題タブ [memory-address]
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.
memory-management - 線形アドレスと物理アドレス
リニアアドレスとは?物理アドレスとどう違うのですか?
x86-16 - 8086で物理アドレスはどのように生成されますか?
8086アーキテクチャでは、メモリスペースのサイズは1 MiBで、それぞれ最大64KiBの論理セグメントに分割されます。
つまり、20のアドレス行があるため、次の方法が使用されます。
データセグメントレジスタが左に4ビットシフトされてからオフセットレジスタに追加されること
私の質問は、すべてのレジスタが16ビットしかないのに、シフト操作をどのように行うかです。
c - main関数のパラメータのアドレスが毎回変わるのはなぜですか?
argv[0]の内容を出力するテストを作成します。これはメイン関数のパラメーターのアドレスです。
Windows7のVisualStudio2008でプログラムをコンパイルしました。
次に、プログラムを1000回実行して、結果をファイルに出力しました。その結果、argv [0]のアドレスは変更されますが、一部のアドレスは同じであり、約10回繰り返されます。
メイン関数のパラメータのアドレスが毎回変わるのはなぜですか?
c++ - 一時的なアドレスの取得が違法なのはなぜですか?
私は以下に書かれたコードが違法であることを知っています
その理由は、一時オブジェクトのアドレスを取得することが許可されていないためです。しかし、私の質問はなぜですか?
次のコードを考えてみましょう
ここで受け入れられた答えは言及しています
「通常、コンパイラは、メモリのまったく同じ場所にある 2 つのオブジェクトとして構築された一時オブジェクトとコピーを考慮し、コピーを回避します。」
ステートメントによると、一時的なものはいくつかのメモリ位置に存在していたと結論付けることができ(したがって、そのアドレスが取得された可能性があります)、コンパイラは、一時的なものと同じ場所にインプレースオブジェクトを作成することにより、一時的なものを削除することにしました。 .
これは、テンポラリーのアドレスを取得できないという事実と矛盾しますか?
また、戻り値の最適化がどのように実装されているかも知りたいです。誰かが RVO の実装に関連するリンクまたは記事を提供できますか?
c++ - イテレータの問題は続く
私はこのコードをかなりバグチェックし、問題の概要を説明するために「正しい」ものを出力していることを確認しました。イテレータがリストを指すことはありませんが、正しいデータが含まれている別のアドレスの束を指します。
2つの質問があります:
1 = coutsの形式が与えられた場合、このループが終了しない理由を調査するために正しい項目を出力していますか。
2 = if(1)では、この出力を生成するために何が起こっているのか、そして私のポインターの知識をさらに深めるためのアドバイスがありますか(私はこれまで何度もforループ形式を使用しましたが、これは決して起こりませんでした;
/質問
コード:
そしてここに出力があります:
どうもありがとう。
c - Cの可変メモリアドレスに関する観察
私は問題ではなく質問があります(魔女はおそらく記憶の質問を引き起こします)。私はこの単純なプログラムを書きました:
ご覧のとおり(Cで開発する場合)、このプログラムは2つのint変数を入力し、それらにmulti関数を乗算します。
結果を取得した後、メモリ内の各変数の位置を表示します(、、、c
および)。x
y
z
私はこの簡単な例をテストしました。それらは結果です(私の場合):
ご覧のとおり、メイン関数で宣言された3つの変数x
、、は閉じたメモリアドレス(22936xx)を持ち、マルチ関数で宣言された変数cは異なるアドレス(22935xx)を持っています。y
z
x
、y
および変数を見ると、2つの変数(つまり、: 、 )z
の間に4バイトの違いがあることがわかります。&x-&y=4
&y-&z=4
私の質問は、2つの変数ごとの差が4に等しいのはなぜですか?
memory-address - メモリアドレッシング
たとえば、Windows XP プラットフォームにいて、ollydbg にプログラム A があり、命令 x を調べます。たとえば、アドレス0x11111111を持っています。プログラムAを使用して、同じプラットフォームの別のコンピューターでollydbgを実行すると、命令xは同じアドレス0x11111111になりますか? 私の質問は次のとおりです。プログラム A が実行されるたびにメモリ アドレスが変更されますか? または、別のコンピューターまたはプラットフォームで変更されていますか?
c++ - 実行中のプロセスで関数ポインタのアドレスを見つける方法は?
実行中のプロセスで関数ポインタのアドレスを見つける方法は?
現在、WindowsXPでC++を使用していますが、関数のアドレスを検索したいと思います。誰か助けてくれませんか?できれば例を挙げてください。ありがとう。
c++ - C ++ダブルアドレス演算子?(&&)
&&
STLソースコードを読んでいますが、アドレス演算子が何をするのかわかりません。これがからのコード例ですstl_vector.h
:
「住所の住所」は意味がありますか?なぜ1つではなく2つのアドレス演算子があるのですか?
java - Javaで変数のヒープ上のアドレスを取得することは可能ですか?
私はこの変数を持っているとしましょう:
var がヒープ上のどこにあるかを知りたい (0x08 などのアドレスで)、アドレスを出力したい。
出来ますか?