問題タブ [pointers]
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 ++でオブジェクトへのポインタのベクトルで検索アルゴリズムを使用するには?
一致するオブジェクトのオブジェクト ポインターのベクトルを検索したい。私の問題を説明するためのサンプルコードは次のとおりです。
ベクターにプッシュされた 2 番目のアイテムを見つけたいと思います。ただし、vector はポインター コレクションとして定義されているため、C++ はオーバーロードされた演算子を使用せず、暗黙的なポインター比較を使用します。この状況で推奨される C++ の方法は何ですか?
c++ - 関数パラメーター: コピーかポインターか?
私は C++ が初めてで、いくつか質問があります。これはその 1 つです。
変数へのポインターではなく、変数のコピーを渡すために、1 つまたは複数のパラメーターを受け取る関数を使用しているときに、そのパラメーターが関数呼び出しの前に常に変数に格納されることがわかっている場合、何らかの理由がありますか? ?
私はパフォーマンスの面で話しています。構造体全体のコピーを渡すには、単なるポインター (4 バイト) よりもはるかに多くのリソースが必要になるように思えます。
c - `int *userMask[3][4]` は何を指していますか?
一部のコードを変更していて、理解できない宣言に出くわしました。
これは一体何を指しているのでしょうか?すべての要素がポインタである行列ですか? それともサイズ [3][4] の行列を指していますか?
ありがとう
私の質問は、userMask[2][maskElement][user]
として宣言されているときにどのように機能するかだと思いint
ます。int[]
それが正しく機能するためには、userMask が必要ではないでしょうか。私はこの権利を理解していないに違いない...
余談ですが、cdecl Robert についてご提案いただきありがとうございます。しかし、XPコマンドプロンプトでそれを使用する方法を知っている人はいますか? 私が得ることができるのは構文エラーです:(
c++ - C++ では、関数へのポインターを使用できます。クラスへのポインターも使用できますか?
インスタンスへのポインターについて話しているのではなく、クラス自体へのポインターが必要です。
c++ - C++: 配列内の 2 バイトを unsigned short にキャストする方法
私は従来の C++ アプリケーションに取り組んできましたが、間違いなく自分のコンフォート ゾーンの外にいます (良いことです)。誰かが私にいくつかの指針を与えるほど親切であるかどうか疑問に思っていました(しゃれが意図されています)。
unsigned char 配列の 2 バイトを unsigned short にキャストする必要があります。バイトは連続しています。
私がやろうとしていることの例:
ソケットから文字列を受け取り、unsigned char 配列に配置します。最初のバイトを無視して、次の 2 バイトを unsigned char に変換する必要があります。これは Windows でのみ実行されるため、ビッグ/リトル エンディアンの問題はありません (私が認識しています)。
これが私が今持っているものです(明らかに機能していません):
c - far 関数ポインターの使用
far はコンパイラ固有であることは理解していますが、ポインターを本当に理解している人にとっては far 指定子の配置が意味を成すはずだと期待しています。
したがって、プロセッサのメモリ空間全体を共有する 2 つのアプリケーションがあります。
アプリ A は、アプリ B に存在する関数 foo を呼び出す必要があります。
関数 foo のメモリ位置はわかっています。
したがって、これはアプリ A で機能するはずです。
- __far は typedef の適切な場所にありますか?
- (MYFP) キャストに __far を追加する必要がありますか?
- いくつかの情報は、foo への呼び出しを逆参照する必要がないことを示唆しています。あなたの経験は何ですか?
これについて他に何が間違っているように見えますか、またはこれを達成しようとする可能性がありますか?
これを行うより良い方法はありますか?
編集:
これは、Code Warrior を使用する組み込みデバイス (Freescale S12XEQ デバイス) にあります。これは 24 ビットのメモリ空間を持つ 16 ビット デバイスなので、セグメント化/バンク化されています。
-アダム
c++ - C ++文字列:[]対*
考えていて、[]または*で変数を宣言することの違いは何ですか?私の見立てでは:
..主な違いになるはずですが、次のようなことができるかどうかはわかりません
..ポインタは静的メンバーへの参照である必要があるので、それが可能かどうかはわかりませんか?
とにかく、私を本当に悩ませているのは、次の違いを知っていることです。
それで、誰かが私に違いを教えてくれるなら、大いに感謝されますか?いくつかの特別な場合を除いて、両方が同じようにコンパイルされるかもしれないという予感がありますか?
Ty
c++ - void* をキャストするときに static_cast または reinterpret_cast を使用する必要があります
との両方がstatic_cast
、別のポインター型へのreinterpret_cast
キャストに対して正常に機能するようです。void*
どちらか一方を優先する正当な理由はありますか?
c++ - クラスからポインタを返す
私のプログラミング クラスでは、リンク リスト クラスを作成する必要があります。含めなければならない関数の 1 つに next() があります。この関数は、リスト内の次の要素のメモリ アドレスを返します。
ご覧のとおり、ポインタ*b
と*c
、リスト内の次の要素を保持するメモリ アドレスを設定する必要があります。私の質問は、どのような種類の戻り値を使用するのですか? Set と Set* を代わりに配置しようとしましたが、コンパイラ エラーが発生します。どんな助けでも大歓迎です。
c - C ポインターのインクリメント
char配列を指すacポインタがインクリメントされると、その配列の次の要素を指すと思いました。しかし、これを試してみると、2回インクリメントする必要があることがわかりました。sizeof(char) を使用してインクリメントを試みると、char のサイズを追加するのは大きすぎるため、2 で割る必要があることがわかりました。
私は何か間違ったことをしていますか?または、ポインタをインクリメントする方法を誤解していますか?