問題タブ [array-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.
c - C の関数に多次元配列を渡す
関数にパラメーターとして渡されるときに C 配列の要素数 (次の例では 10) を指定する必要があるのはなぜですか?
アクセスされるセルのアドレスを決定するために要素の数が必要だからでしょうか。
c - 配列の特定の値を指す
int* array
10.000 個を超える int 値を持つ配列 がありますが、各 100 の位置を指したいint ** matrix
場合、次のようになることを意味します。これが私がやったことです:
matrix[i][j]
i
array[i * 100]
問題は、配列の先頭を指していることです
pointers - ポインタが2つの異なるアドレスを与えるのはなぜですか?
私はこのプログラムを持っています。そして、私はいくつかの疑問を持っています。コンパイラで実行できます。Linuxでgccコンパイラを使用しています
このコードadd
では、各配列要素のアドレス値を占有し、ループを通じてそのアドレスを 1 つずつ出力します。しかし、 によって与えられたアドレス値は によって与えられたものadd
と等しくありませんが&(a[i][j])
、これらの 2 つによって与えられた値は等しいです。つまり、配列要素ごと*add
に等しいです。*(&(a[i][j]))
これがなぜそうなのか、誰かが私に説明できますか?
メモリ内のデータ配置の順序を確認するために、各要素のサイズを出力しました。add
私のコンパイラは32ビットベースであるため、との両方の場合、4ビットのギャップでアドレスを出力しました&(a[i][j])
。
最後に、配列の初期アドレスを出力します。これにより、 と同じアドレスが得られ&a[0][0]
ます。問題は、どの方法が正しいかということadd=&(a[i][j]
です。a[i][j]
または、 ?を付けて直接出力します。
c - C での配列のアドレスへの追加
これはおそらく非常に議論されている質問ですが、私はまだその仕組みを理解できていません:
配列のアドレスに 512 を追加するにはどうすればよいですか?
状況は次のとおりです。
readSector はバッファ配列を取り込み、ディスクのセクタ 2 の内容をダンプします。次に readSector が再度呼び出され、セクタ 3 の内容がバッファにドロップされます。printString は、バッファの内容を画面に出力するだけです。
私の教授は、readSector を呼び出すたびに、バッファのアドレスを 512 ずつインクリメントする必要があると説明しています。これを行うにはどうすればよいですか? 繰り返しますが、これが露骨に明白な質問である場合、または以前に尋ねられた場合は申し訳ありません. ありがとう!