中級 › nullptrの参照外しでSegmentation faultになる原因 › パターン1
nullptrの参照外しでSegmentation faultになる原因
nullptrで初期化したポインタをそのまま参照外し(*p)して書き込もうとしたときに異常終了するバグです。
1 #include <iostream> 2 int main() { 3 int *p = nullptr; 4 __________________________ ^ 5 std::cout << *p << std::endl; 6 return 0; 7 }
Segmentation fault
空欄を埋めてコンパイル・実行を通す
nullptrはどのオブジェクトも指していません。そこへ書き込もうとするとOSが不正なメモリアクセスを検知してプロセスを強制終了させます。有効なint変数のアドレスをpに入れてから使う必要があります。
次の問題