#include <iostream>
int main()
{
int* i = 0;
int x = (*i);
std::cout << x;
}
上記のプログラムは、を使用してコンパイルして実行するとVisual Studio 2010
クラッシュします。ポインタを 0 に設定したため、クラッシュすることがわかっています。
私が知りたいのはnull pointer
、標準で定義されている C++ にアクセスすることですか、それとも未定義ですか。コンパイラ/コンピューター/オペレーティング システムが原因でプログラムがクラッシュしたことは幸運なことです。
定義されている場合、null ポインターにアクセスしようとすると、C++ は何を保証しますか?