問題タブ [pass-by-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.

0 投票する
0 に答える
1747 参照

c - Cの関数に動的配列を渡す

簡単なコード スニペットを記述してポインターを学習しようとしています。今日は次のように書きました。

メイン関数で malloc を使用すると、コードは期待どおりに機能します。しかし、呼び出された関数で使用すると、そうではなく、セグメンテーション違反が発生します。私は少し調べて、次のようないくつかの基本を理解しました。配列名は、実際には配列の最初の要素へのポインターです。したがって、パラメーターを正しく渡しています。2. 呼び出された関数でも配列を出力しているため、配列が更​​新されます。

arr_p は実際には arr が指している場所を指しているので、「arr_p = (int *)temp」を実行すると、arr もこの割り当てられたメモリ空間を指しているということではないでしょうか? メモリ内で何が起こっているのかを調べていますが、ここでメモリ アクセス違反が発生するのはなぜですか? 部分的に導き出された仮定で自分を納得させたくありません。

0 投票する
4 に答える
128 参照

c++ - 値渡し/ポインタ/参照の明確化

値/ポインター/参照による受け渡しについて、一度だけ明確にする必要があります。

次のような変数がある場合

そして、それを次のような関数に渡したい

私の現在のシナリオでは、SomeInt を DoSomething() に渡すときに、DoSomething() 内で何を行ったかに基づいて SomeInt の値を更新し、メモリとパフォーマンスを最も効率的にしたいので、変数をコピーしませんか? . そうは言っても、次のプロトタイプのどれがこのタスクを達成するでしょうか?

実際に変数を関数に渡すにはどうすればよいですか? 前の 2 つのプロトタイプの違いは何ですか?

最後に、クラス内で関数を使用する場合

整数を ChangeValue に渡すと、渡した整数が削除されたときに、クラス内から MyInteger を使用しようとすると使用できなくなりますか?

お時間をいただきありがとうございます。これが基本的な質問であることは承知していますが、何度も出くわす説明が私をさらに混乱させます。

0 投票する
1 に答える
119 参照

c++ - ポインターを参照渡し c++

はい、私は多くのチュートリアルと質問を読み、多くの組み合わせも試しましたが、うまくいかないようです. 私の目標は、動的割り当てを使用しないことです。

私のクラスは次のようになります。

これを行うときのメインで:

1. メイン:

結果:PCam

しかし、外部クラス内にインスタンスを作成してページに向けようとすると失敗します。

2.

ページ クラス:

主要:

結果: ページ

期待される結果: PCam

私のクラス:

ページ:

Pメイン:

PC カメラ:

どんな助けでも大歓迎です。ありがとう。

0 投票する
3 に答える
1155 参照

c++ - C++メンバー関数にはポインタが必要ですが、参照渡しには悪い習慣がありますか?

C++ クラス メンバ関数が引数としてオブジェクトへのポインタを必要とする場合、参照渡しは悪い習慣と見なされますか?

たとえば、次のコードは機能しますが、参照渡しがないと危険なコードになり、実行時に壊滅的なエラーが発生します。

値渡しで引数のコピーが作成された場合、後で逆参照するときに悲惨な結果になることを考慮してください。

別の方法は次のとおりです。

私は一貫性が好きで、最初のタイプにデフォルト設定されていますが、2 番目の形式の方がより良い方法であると考えられます。これは事実ですか?

0 投票する
1 に答える
81 参照

c++ - C++ ポインター渡しと参照渡し

私の質問は非常に具体的です。上記のコードと同じことをしたいのですが、関数代入(int **)の引数をポインターで渡す代わりに、参照によって行います。どうすればそれを達成できますか?

0 投票する
0 に答える
462 参照

c - リンクリスト追加関数で値を渡す

私は過去 2.5 時間かけてこのリンク リストを作成し、リストの先頭にメモリ アドレスが渡されない理由を理解しようとしました。私のクラスが Java のデータ構造について何を学んでいるかに移る前に、C でリンクされたリストを理解しようとしています。他の質問を調べましたが、なぜ機能しないのかわかりません。私がすべてを理解するために努力してきたコメントを許してください。お時間をいただきありがとうございます。

head 変数は、新しい割り当て後は NULL になります。 head = addFamMember(NULL); メインスレッドで。しかし、そのメンバー (名前、年齢、および次のポインター) を出力することにより、add 関数内でメモリが割り当てられていることがわかります。出力は次のとおりです。

コードは次のとおりです。彼にコメントを残して、私の考えを説明し、どこが間違っているかを特定するのに役立つ可能性があります。