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

0 投票する
7 に答える
27691 参照

c - Cのポインタを持つint行列 - メモリ割り当ての混乱

メモリ リークを発生させずに int マトリックスを生成する際に問題が発生しています。read_matrix() を使用して、特定の (グローバル) マトリックスを動的に任意のサイズにできるようにしたいと考えています。しかし、後でメモリを解放できるようにしたいのです。したがって、私のメイン メソッドでは、メモリが割り当てられていないため、2 番目の printf はバス エラーになるはずです。これを作成するにはどうすればよいですか?

0 投票する
14 に答える
660513 参照

c++ - スマート ポインターとは何ですか? また、いつ使用する必要がありますか?

スマート ポインターとは何ですか? また、いつ使用する必要がありますか?

0 投票する
5 に答える
939 参照

c++ - 配列へのポインターを変更して、特定の配列要素を取得する

私はポインターと参照の全体的な意味を理解しています (少なくとも私はそう思います)。また、newを使用するときに動的にメモリを割り当てていることも理解しています。

私の質問は次のとおりです。

を使用するcout << &pと、 の「仮想メモリの場所」が表示されますp。この「仮想メモリの場所」を操作する方法はありますか?

たとえば、次のコードは の配列を示していますint

の値を表示したくてp[1]、 の「仮想メモリの場所」を知っていた場合、pどういうわけか " " を実行して with&p + 1の値を取得できますか?p[1]cout << *p

0 投票する
12 に答える
2497 参照

c++ - C での不必要なポインタ キャスト

このスレッドでの回答に対してコメントを受け取りました。

関数呼び出し内の Malloc は、戻り時に解放されているように見えますか?

要するに、次のようなコードがありました。

こんなコメントを頂きました。

malloc の戻り値をキャストしないでください。これは必須ではなく、エラーを隠すことができます。

C ではキャストが必要ないことに同意します。C++ では必須なので、ある日 C++ にコードを移植する必要がある場合に備えて、通常はキャストを追加します。

しかし、このようなキャストがどのようにエラーを隠すことができるのだろうか。何か案は?

編集:

双方に非常に適切で有効な議論があるようです。投稿していただきありがとうございます。

0 投票する
8 に答える
2472 参照

c - C ポインター代入動作

temp2temp1いくつかの構造体 x へのポインターです。

さて、次の行の実行後:

...同じメモリ位置を指し続けますかtemp2? temp1そうでない場合は、なぜそれらが異なるのかを説明してください。

0 投票する
12 に答える
118625 参照

c++ - ポインタとリファレンス

関数に元の変数を指定して操作する場合のより良い方法は次のとおりです。

また:

IOW:どちらかを選ぶ理由はありますか?

0 投票する
8 に答える
10187 参照

c - strcpy がグローバル変数でセグメンテーション違反を引き起こすのはなぜですか?

だから私はいくつかのCコードを持っています:

これは、見た目どおりにコンパイル、実行、および動作します。ただし、文字ポインターの一方または両方がグローバル変数として宣言されている場合、strcpy はセグメンテーション違反になります。なぜこれが起こるのですか?明らかに、スコープの理解に誤りがあります。

0 投票する
5 に答える
5193 参照

c++ - C++の文字配列へのポインタを透過的に交換します

私は2D文字配列を持っています:私はこれらの要素の2つを(なしで)
char nm[MAX1][MAX2] = { "john", "bob", "david" };
交換したいのですが 、次のようになります。 std::swap
swapPointers(nm[0], nm[1]);
swapPointers

ただし、これはコンパイルされません(キャストを追加するとコンパイルされますが、ポインターが間違った/奇妙な場所を指していることになります)。

誰か助けてもらえますか?
ありがとう!

0 投票する
6 に答える
46007 参照

c++ - メンバー関数ポインタを渡すにはどうすればよいですか?

クラス内のメンバー関数を、メンバー関数クラス ポインターを受け取る関数に渡そうとしています。私が抱えている問題は、 this ポインターを使用してクラス内でこれを適切に行う方法がわからないことです。誰にも提案はありますか?

メンバー関数を渡すクラスのコピーを次に示します。

関数 x.SetButton(...) は、「オブジェクト」がテンプレートである別のクラスに含まれています。

後で使用できるように、この関数を適切に送信する方法についてアドバイスがあれば。

0 投票する
10 に答える
65141 参照

c++ - オブジェクト全体、またはオブジェクトへのポインターをコンテナーに格納する必要がありますか?

新しいシステムをゼロから設計します。STL を使用して、特定の長寿命オブジェクトのリストとマップを保存します。

質問: オブジェクトが確実にコピー コンストラクターを持ち、オブジェクトのコピーを STL コンテナー内に格納する必要がありますか?それとも、ライフとスコープを自分で管理し、それらのオブジェクトへのポインターを STL コンテナーに格納するだけの方が一般的には良いですか?

これは詳細がやや不足していることを認識していますが、これらのソリューションの両方が可能であることを知っているので、「理論的な」より良い答えが存在する場合はそれを探しています。

ポインタで遊ぶことの 2 つの非常に明白な欠点: 1) STL を超えた範囲で、これらのオブジェクトの割り当て/割り当て解除を自分で管理する必要があります。2) スタック上に一時オブジェクトを作成してコンテナーに追加することができません。

私が見逃しているものは他にありますか?