問題タブ [pointer-arithmetic]
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 - ポインターがprintfで何を示しているかを視覚化する
私はそのような関数に出くわしました。これは、特別な種類の単語を逆にするという私のタスクに非常に役立ちます。while ループでの複雑なポインター演算に問題があります。遅れている配列インデックス番号を表示する方法。word
、dPtr
またはsubword
(現在の反復で)printf ?
減算値 (subword-word) と (dPtr-dest) のみを達成しました。
「ゼロ」になる「foo」ポインターを作成して、減算によって検査値のみが得られるようにする方法はありますか?
コードは次のとおりです。
前もって感謝します!
pointers - メモリリークはどこにありますか?
だから私はポインタを学んでいて、ここでメモリリークを特定するのに苦労しています。私はこれまでmalloc()を使用したことがなく、ポインター演算に慣れていないことを告白します。前もって感謝します。
c - 構造体オフセットを適用するにはどうすればよいですか?
私は構造を持っています
構造全体とその配列の内容に十分なメモリを割り当てる必要があります。したがって、各配列の長さが5であると仮定します。
ここで、array1とarray2を、割り当てられたバッファー内の正しい場所にポイントする必要があります。
これは正しいです?
編集#1
混乱を解消するために、メモリを3つではなく、1つのブロックに保持しようとしています。
編集#2
MSVC 2010コンパイラがC99をサポートしていないため、C99を使用できません(http://stackoverflow.com/questions/6688895/does-microsoft-visual-studio-2010-supports-c99)。
c - ポインター算術論理に型が適用されるのはいつですか?
int の配列がある場合は、次のように言いましょう。
アドレスに存在するもの0xbfdf53a8
。これの値をループで出力したいのですが、次のようなことができます:
このループが機能するのは、毎回「int」を 1 ずつインクリメントしているためです (通常の 32 ビット マシンでは、反復ごとにアドレスが 4 バイトずつ増加します)。
私の質問は、タイプ指定されたバイトオフセットが適用されるのはいつですか? それはコンパイルプロセスの一部ですか(アセンブリのどこかにあることを意味します)、それともOSレベルで行われますか?
これが標準化された方法でどのように処理されるかを推測しますが、まだその答えを見つけることができませんでした.
c - 異なるサイズのタイプへのポインターのキャストと追加
次のコードスニペットがあるとします。
次に、a = 1、b = 2、c = 10です(%iでprintf()を使用し、これに関する警告が表示されたため、ここでもわかりません。)
これがどのように機能するのかよくわかりません。私にはいくつかの理論がありますが、それに関するいくつかのドキュメントを読むことを好みます。
この3つのケースの正確な動作を検索または説明するためのキーワードを誰かに教えてもらえますか?検索する単語が不足しているため、SOまたはgoogleでこの問題に関する情報を見つけることができませんでした。
入力すると出力は変わりますか
代わりは?
c++ - forループでのポインター演算
慣れていない方法でポインター演算を使用するコードを理解しようとしています。コードのある時点で、これに遭遇しました:
P が行列の場合、これは P の対角要素の対数を加算するように見えますが、上記の最後の行は次と同等ではないことがわかります
ここで何が起こっているのかの説明を探していますが、見つかりません。また、問題のコードは最終的に正しい結果をもたらすようです (これはモンテカルロの一部です)。何か案は?
c - GCCでvoidポインタ演算がどのように行われているのか
このプログラムでp+1
は、pの値を1だけインクリメントしています。void pointer arithmetic
では不可能であることがわかっているC
のでGCC
、暗黙的に実行しています。もしそうなら、それはそれをとして取っていchar pointer
ますか?dereferencing
また、暗黙的にポインタ演算を行っている場合、voidポインタが不可能なのはなぜですか。
c++ - ポインター演算と移植性
私はアプリケーションを書いていますが、いくつかのポインター演算を行う必要がありました。ただし、このアプリケーションは異なるアーキテクチャで実行されます! これが問題になるかどうかはよくわかりませんでしたが、この記事を読んだ後、変更する必要があると思いました.
あまり好きではなかった元のコードは次のとおりです。
かなり悪いですね!ポインタにint
値を追加!u_char
しかし、私はこれに変更しました:
私は今、コンパイラがジャンプする量を言うことができると思います! 右?配列に対する操作は[]
ポインター演算と見なされますか? 移植性の問題は解決しますか?
c - ポインター演算を理解するための OpenCV ビジュアル
私はちょうどOpenCVを学んでいます。私が読んでいる本では、すべてのピクセルに触れる必要がある操作では、ポインター演算、stepWidth などで double for ループを使用して、あるピクセルから次のピクセルに移動することを推奨しています。
IplImageがメモリ内でどのように見えるかを正確に視覚化するのに苦労しています.RGBRGBかRRRGGGBBBか、これらはすべて数字ですか.
ビジュアルを知っている人はいますか、または OpenCV イメージが割り当てられる基本的な方法と、どのデータ型がどこに行くのかを説明できますか? ピクセルかプレーニングかなどに依存することは理解していますが、反復方法をよりよく理解できるように、バイト数で綴られたいくつかの例を視覚的に見るとクールです
ありがとう!