問題タブ [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++ - ポインター配列の動的初期化
上記のコードでは、コンストラクター内の 2 行目 (b = new int*[10]) でコンパイル エラーが発生します。エラー: int**' to
int*[0u] の割り当てに互換性のない型があります。
なぜそうなのですか?
c - 二重ポインタ内の値が正しく更新されない (C)
入力ファイルを読み取り、char** と int* の内容を変更する関数があります。機能は次のとおりです。
メインプログラムで次のように入力とファイルを定義しました。
次のように関数を呼び出します。
入力ファイルには、次の 3 行が含まれます。
while ループ中に「現在の」値が正しく読み取られますが、すべての入力 [*] に格納されることに気付きました。
ここで何がうまくいかないのか誰かが何か知っているなら、私は大いに感謝します。
c - ダブルポインタが指す2D配列のサイズを取得するにはどうすればよいですか?
配列を指すダブルポインタから2D配列の行と列の数を取得しようとしています。
上記の関数は、問題が発生しているサイズの詳細を出力する必要があります。
配列を作成するためにmallocを使用しています。
このようなものを使用するとどうなりますか
column = sizeof(a)/ sizeof(int)?
c - Cの構造体へのダブルポインタメモリ割り当て
このコードの何が問題になっているのかわかりません。正確に4つの値を入力すると期待どおりに機能しますが、5回目の呼び出し(scanfを要求する前)では、常に次のエラーが発生します。 *glibcが検出されました./a2:ダブルフリーまたは破損(ファストトップ):0x0916e018 * *
これが私のプログラムのコードです:
dSizePtrを作成する必要はなく、&dSizeを渡すだけでよいことはわかっていますが、プログラムの現在の設定方法(これはまったく同じではなく、読みやすくするために圧縮されているだけです)、それを渡す必要があります。それ。
正直なところ、なぜこのエラーが発生するのかわかりません。私のコードを何時間も見てオンラインで読んでいて、解決策が見つかりませんでした。どんな助けでも大歓迎です!
c++ - unsignedchar**からopencvマットへ
私はもうすぐそこにいますが、変換する方法がよくわかりません
cv::Matの.data部分がuchar*であることを知っています
私は次の形式で画像を返す関数を使用しています...
しかし、私のコードの残りの部分はcv::Matを使用しています。使用しているlibのソースもありませんので、実際に何をしているのかわかりません。
編集 助けてくれてありがとう、私はこれをやった...
しかし、画像は黒なので、実際に何かがあるかどうかを確認する必要があります。
研究不足で申し訳ありませんが、締め切りが迫っています。宿題ではありません。教授に結果を示す準備をしようとしています。
c++ - c++ valgrind ダブル ポインターを削除してメモリ リークを防止する
読んだ後: C++ ポインターの配列: [] を削除または削除しますか? (shai vashid による返信) および http://www.cplusplus.com/forum/beginner/6651/
私は以下を実装しました:
カーネル.h
カーネル.cpp
何が間違っているのかわかりません。
何か提案はありますか?
ありがとうございました。
c++ - ポインター逆参照の問題
私は function を持っていますvoid MOVE_TO(Square **sendingSquare, Square **receivingSquare)
。Square
はクラスです:
問題は、MOVE_TO(...)
戻ったときに、両方の正方形が受信側の正方形を指しており、移動するはずだった居住者が完全に姿を消していることです。アイデア/提案? これを回避できるようになるまで、私のコードはほとんど動かなくなります。提案が来る前に自分の問題を見つけたら、戻ってきて自分の質問に答えます。
c - 二重ポインタ: ポインタである構造体メンバへのポインタ
「センザンコウ」を再生するプログラムを作成しようとしています (この人のように、はい/いいえの質問をし、リーフ ノードに到達するまでバイナリ ツリーをたどります。次に「推測」し、ユーザーが答えが間違っていた場合、ユーザーが何を考えていたのか、それを間違った推測と区別する質問をユーザーに尋ね、新しいデータをツリーに追加します)。
これは、ツリー ノードの my 構造体です。NodeType は、質問を含むノードの場合は QUESTION_NODE、「オブジェクト」を含むノードの場合は OBJECT_NODE です。これは、ユーザーが考えているとプログラムが推測するものです。質問ノードには、子ノードへのポインターがあります。1 つははい、もう 1 つはいいえです。
これは学習演習であるため、二重ポインターを使用して実行しようとしています。質問ノードをツリーに追加する関数は次のとおりです。
addData 関数は次のように呼び出されます。
私の(おそらく間違っている)理解は次のとおりです。
「ask()」では、「node」のメンバー「yes」(または「no」) を指すポインターを addData に渡しています。そのメンバーは、ポインターです。addData で "*replace" に割り当てると、構造体が変更され、"yes" (または no) メンバー ポインターが、作成した新しい質問ノードを指すようにリダイレクトされます。
デバッグしたところ、newQuestionNode と newObjectNode が正常に作成されていることがわかりました。newQuestionNode の子は正しく割り当てられています。ただし、新しい質問ノードはツリーに挿入されません。「*replace = newQuestionNodePtr」行には期待した効果がなく、「ask」スコープの「node」によって参照されるノードの子ポインターはリダイレクトされません。
私の理解で何が間違っているのか誰にもわかりますか?それとも、私のコードでそれを正しく表現していない方法でしょうか? 申し訳ありませんが、この質問はとても長いです。
c - ダブル ポインターを使用した 2 次元配列の実装
次のコードを検討してください。
私のコードに問題はありません。それは正常に動作します。
ポインター演算について質問があります。
*(ptr+0)
= COMPLETE BLOCK (最初の配列)
*(ptr+1)
へのポインター = COMPLETE BLOCK (2 番目の配列) へのポインター。
しかし、何ですか: (*ptr+1)
?
GDB 出力:
私はこれについて混乱しています。この疑問を解決するための説明をお願いします。