問題タブ [pointer-to-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++ - 条件ステートメントでポインター値を単純にチェックすると、どのような影響がありますか?
ここに私のコードがあります:
安全な実践と指針に関して、特にいくつかのことを疑問に思っていました。
- for-loop での条件ステートメント、
; *ptr ;
これは安全な方法ですか? 配列の最後の要素のすぐ隣のメモリアドレスに何かが格納されている場合、それはすべて壊れますか? それは可能ですか?いつ終了するかをどのように知るのですか?*ptr
容認できないとみなされるのはいつですか? - (メインのコメントアウトに関して
char *ptr = msg;
):ポインターと配列は非常に似ていることは理解していますが、実際の配列をcountX
渡すこととポインターを渡すことの間に違いはありますか(配列の先頭を指しますか?)。 - では
countX
、単純な問題にアプローチするための 2 つの異なる方法を提供しました。一方が他方より優れていると見なされますか?
c - malloc 使用時のコンパイラ エラー (割り当ての左オペランドとして左辺値が必要)
各構造体へのポインターと、構造体のポインターを指す void の 2 つの構造体を取得しまし**stack
た。
私の問題はラインにあります
*a
スタッド登録が発生するたびに 1 ずつ増加する変数なので、同じアドレスに何度もメモリを割り当てません。
メニュー関数でアドレスを送信してからstud(&stud)
、入力関数でアドレスを送信するため
したがって
なぜ間違っ(*ptr2+*a)
ているの左側にあるのmalloc
ですか?コードの一部
c - 構造体ポインタへのボイドポインタ.ボイドポインタにアドレスを入れるときのProb
構造体ポインターのアドレスを含む void **stack を取得しました。問題は、スタック全体を出力すると、実際にスタックに保存しようとしている実際のアドレスとは異なるアドレスが表示されることです。
構造体の内容を出力することで、stud_input が正しく機能するかどうかをテストしましたが、正常に機能しているようです。
私は通常、もう1つの構造体(構造体教授)を持っていますが、両方で同じ問題が発生したため、複雑さを軽減するために両方を投稿していません。
印刷されると予想されるものと、住所を印刷したときに実際に得られるものの例
期待される:
私が本当に得るもの:
コードの一部
c++ - void ポインター ポインター (void **)
http://msdn.microsoft.com/en-us/library/windows/desktop/dd389098(v=vs.85).aspxで COM サンプルを読んでいます。
私は本当に理解できません (void **) で
そのため、クラスによってさまざまなタイプのポインターによって返される値をいくつか試しました
そしてプリントアウト
(void*) は (void **) とまったく違いはありません。(void **)&pControl は何を返したいですか?
c - 文字列内の文字を列挙文字列に交換する方法は?
倉庫番のレベルを表す文字列: -----#####-----------|-----#@$.#-----------|-----#####-----------
function の実行後init_game(LEVEL *level)
、構造game
は次のようになります。
x
、y
、width
、height
およびについては、この問題を解決済みsteps
です。map
まだ残っている
c++ - ポインターからポインターへの文字配列の宣言と初期化
ポインターへのポインターに関しては、次のように問題ないかどうか疑問に思います。
つまり、10 個の文字配列を指すポインタへのポインタが必要な場合です。
質問 - これで問題ありませんか、それともすべての文字配列を何らかの初期化する必要がありますか? それから - どうすればいいですか?
後でプログラムでこれらの配列に特定の文字を入力しますが、配列は「0」などの値で初期化する必要があると思われます
c - 値を変更したいときはダブルポインタが必要だと思った
二重ポインタを研究するとき、一般的なコンセンサスは、変数の値を変更し、関数から戻るときに新しい値を保持したい場合であり、そのポインタ値を渡す必要があるようです.
既にポインターを使用している場合は、ダブル ポインターを渡す必要があります。
次の例では、コードのメイン部分でポインターを処理し、同じポインターを関数に渡し、その値を変更して、新しい値をメインに表示します。
私が読んだことに基づいて、ダブルポインターが必要である必要がありました。そうしないと、メイン内に新しい値が表示されません。
これが機能する場合、二重ポインターが必要であることを示すためにどのように変更できますか?
c - PointerToPointer :変更された値/構造を元のリストに戻す方法は?
Linked List の add 関数を書いているときに、次のコードを思いつきました
ポインターからポインターへの私の理解が進む限り、この関数を呼び出すと
addNode(&n)
(n はノード * n として定義されます) ポインター n のアドレスを送信します。head = &n 今のところ? 1 で、ptr が n を指すようにします。つまり、ptr = &n? そうですか?私が理解できないのは、なぜ *head = ptr を設定する必要があるのですか? ptr はすでに n を直接変更していませんか? そして、ptr と *head の両方が n を指していませんか?
ありがとう!