問題タブ [double-pointer]
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 - uint** を uint にキャストする
私は以下のコードを持っています
packet_space は char[] で、基本的に unsigned int に変換したい 4 バイトの char 配列です。deconstructPacketHeader() は unsigned int を取りますが、stroutll (私のキャストでは) は double ポインターを返しています。基本的に、 uint の実際の値を取得するにはどうすればよいですか (逆参照を 2 回)、deconstructPacketHeader() に渡すことができますか?
ありがとう!
c - ダブルポインタ配列の設定
二重ポインタに関する質問がたくさんあることは知っていますが、配列の開始に関する質問は見つかりませんでした。
以下のコードでは、 によって main にポインターを設定できますが、 を呼び出すとptrs[0] = &array[0];
コードが停止します。何故ですか?問題があるかどうかはわかりませんが、ptrs[] は初期化されていません。enqueue()
*queue[i] = p;
c++ - ポインターへのポインター: リンクされたリストの分割
私はポインタでより簡単になろうとしています。そこで、楽しみのために、リンクされたリストを値で分割する次の C++ 関数を使用しました。
代わりにCスタイルのダブルポインターを取るように変更しようとしました。私は無知な検索置換を行いましたが、うまくいきませんでした。調べてみると、問題の原因がわかりましたが、何が起こっているのかまだよくわかりません...
最初のループでは、関数の while ループの先頭付近にある 4 つのデバッグ出力行すべてが「1」を出力します。ただし、2 番目のループでは、「2」、「2」、「2」、「3」と出力されます。
誰が何が起こっているのか説明できますか? ポインターへの参照の代わりにダブルポインターを使用する正しい方法は何ですか?
ありがとう!
pointers - 未知のサイズの 2D 正方配列にポインターを割り当てる方法は?次の関数の何が問題なのですか?
これが私が試したコードです、セグメンテーション違反が結果でした..
c - Cのダブルポインター、コードの割り当て警告
次のコードで警告が表示される理由がわかりません。
ダブルポインタにメモリを動的に割り当てる方法は他にありますか?
c - 構造体内の構造体へのダブルポインタ
構造体ポインターの二重ポインターにアクセスするにはどうすればよいですか?? 以下のコードで addBow() を呼び出すと、Segmentation fault (core dumped) エラーが発生します
graph->cities[id] の正しい構文はどれですか??
ありがとう
解決策: メモリが割り当てられていないため、initGraph を編集すると問題が解決します
c++ - ポリモーフィック ツリー クラスのダブル ポインター アップキャスト (再び)、shared_ptr およびジェネリック setChild 関数
、、、、Node
などの多くのサブクラスで派生した抽象クラスColor
があり、アプリケーションのユーザー データが含まれています。データは、これらのノードの大きなツリーで構成されています。各サブクラスには、固定型の固定数の子があります。たとえば、Material は 1 つの Color 子と 1 つの Texture 子を持つことができます。これらは として保存されますTexture
Shape
Light
Node
std::shared_ptr
現在、各クラスは引数としてsetChild
を受け取るメソッドを派生させます。Node
各実装は、それに応じて型とその子の型をチェックし、dynamic_cast
成功した場合はそれを設定します。
サブクラス化する必要なく、ジェネリックsetChild
メソッドを に実装したいと思います。Node
このために、各サブクラスは、名前文字列、型文字列 (サブクラスに対応する)、および a へのポインターを与えることにより、コンストラクターでその子を宣言 (または登録) しshared_ptr
ますNode
。
あなたは今問題を見ることができます:
- を使用しますが
**SubClass
、**Node
これは悪いことだとわかっていますが、各サブクラスにはtype()
クラスを一意に識別するメソッドがあり、登録された子ごとにその型がわかっているため、誤ったポインター型を保存しないように再確認できますダブルポインタ。 - 実際にはこれを
**Node
ではなく で行い*std::shared_ptr<Node>
ます。ここで私は正しいことをするかどうか確信が持てません。
質問:
- タイプがわかっている場合でもa
shared_ptr<Subclass>
で aを設定することはできますか?*shared_ptr<Node>
- これはあなたがやったであろう方法で設計されていますか?
ありがとう、
エティエンヌ