ワイルドポインターとは何ですか? そしてワイルドポインターの危険性

ワイルドポインターとは何ですか?

ワイルド ポインタ: 正しくありません。ランダムなポインタを指しています。
原因:
1. 作成されたポインタは割り当ても初期化されておらず、ランダムな位置を指しています。
2. リリース ポインタが指すアドレス メモリはクリアされておらず、ガベージ メモリを指しています
。 3.ポインタに対する操作がポインタ変数のスコープを超えました。

ワイルドポインターの危険性

ワイルド ポインタは未知のアドレスを指すポインタであることがわかっていますが、ここには 3 つの状況があります:
1. アクセスできないアドレスを指す
害: セグメント フォールトを引き起こす。(いわゆるセグメントフォルトとは、アクセスできないメモリにアクセスすることを意味します。たとえば、メモリが存在しないか、保護されているなど) 2. 利用可能な
領域を指しますが、明確な意味はありません
。 危険: プログラムは正しく実行できますが、しかし、この場合、通常、私たちはプログラムが正しくて問題がないと考えますが、実際には問題があるため、これでプログラムのエラーが隠蔽されます。
3. 使用可能なスペースを指し、使用されているスペースの
危険性: このようなポインターを逆参照し、それが指すスペースの内容を変更するが、実際にはこのスペースが使用されている場合、この時点で変数の内容が突然変更されます。もちろん、使用している変数は使用したい値ではないため、プログラムの実行に影響します。多くの場合、そのようなプログラムはクラッシュしたり、データが破損したりします。

避ける方法

ワイルド ポインターの原因がわかったので、このような間違いをしない限り、ワイルド ポインターをうまく回避できます。
1. ポインタ変数を定義するときは必ず初期化を行う
2. 動的にオープンしたメモリ空間を使用した後は、対応するポインタを NULL に設定する
3. 関数内でスタック空間のポインタおよび参照を返さない
4.使用する際の指針となります。

おすすめ

転載: blog.csdn.net/weixin_44406127/article/details/129548559