1. ホーム
  2. c++

[解決済み] ポインタを比較するには?

2023-01-14 15:52:30

質問

2つのポインタがあるとします。

int *a = something;
int *b = something;

同じ場所を指しているかどうかを比較したい場合、(a == b)でうまくいきますか?

どのように解決するのですか?

そうです、これは 生ポインタ の等価性です。どちらも同じ場所を指している(あるいは ポインタのエイリアス ); 通常は 仮想アドレス空間 プロセス で管理されている、C++ でコード化されたアプリケーションを実行している オペレーティングシステム (を持つマイクロコントローラの組み込みデバイスのプログラミングに使用することもできます。 ハーバード・アーキテクチャ このようなマイクロコントローラでは、いくつかのポインタキャストは禁止されており、意味がありません - 読み取り専用データがコード ROM に置かれる可能性があるため)

C++の場合、読み出し 良い C++ プログラミングの本 を参照してください。 このC++のリファレンス のウェブサイト、C++コンパイラのドキュメントを読んでください(おそらく GCC または Clang ) を使ってコーディングすることを検討してください。 スマートポインタ . また、C++標準のドラフトも読んでみてください。 n4713 を読むか、または公式の標準を ISO の代表者から購入することもできます。

の概念と用語は ガベージコレクション は、動的割り当てによって得られたポインタやメモリゾーンを管理する場合にも関連します (たとえば ::operator new を読んでください。 GCハンドブック .

Linuxマシンでのポインタについては、以下も参照してください。 この .