Dav*_*ius 1 c++ gcc visual-studio-2010
以下代码编译时没有错误,并且运行时没有分段错误:
int* a = 0;
int& b = *a;
Run Code Online (Sandbox Code Playgroud)
我们在引用中确实有一个nullpointer.可以在项目中移动此引用一段时间,直到它被使用.当它被使用时,它将产生分段错误.
目前使用的编译器是MSVC 10.0和gcc 4.9.为了便于找到错误,我希望取消引用在nullpointers上失败,以便在上面的代码中引起分段错误.是否有可能实现这一目标以及如何实现?
代码的行为未定义.
您可能不一定会遇到分段错误(编译器甚至可能会优化有问题的语句),因此不要在可移植C++中依赖此技术.
如果你想崩溃你的程序然后使用std::abort();,或std::terminate();
如果要测试指针ptr的null,请使用
if (!ptr){
// ptr is nullptr
}
Run Code Online (Sandbox Code Playgroud)
参考文献:
http://en.cppreference.com/w/cpp/utility/program/abort http://en.cppreference.com/w/cpp/error/terminate