c++ - Windows 7奇怪的异常现象

标签 c++ windows visual-c++ exception

我在 CodeProject 中发现了一些关于异常处理的有趣文章

http://www.codeproject.com/KB/cpp/seexception.aspx

看完后,我决定做一些实验。

我第一次尝试执行以下代码

char *p;
p[0] = 0;

程序毫无疑问地死了。

但是

当我多次执行相同问题的二进制代码后, 它神奇地做得很好。

即使是下面的代码也运行良好。 有什么线索或解释吗?

char *p;
p[1000] = 'd';
cout<<p[1000]<<endl;

我的操作系统是 Windows 7 64bit,编译器是 VS2008 rc1。

最佳答案

取消引用不指向对象的指针(例如,未初始化的指针)会导致未定义的行为。

这意味着任何事情都可能发生。通常,通过未初始化的指针写入会导致您的程序崩溃——要么立即崩溃,要么在未来某个时候崩溃。可以想象您的程序可能会继续正确运行,但您永远不能依赖它。

关于c++ - Windows 7奇怪的异常现象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3058833/

相关文章:

windows - 从 Inno Setup 一次安装多个应用程序

c++ - 如何处理黑莓10中自定义控件的触摸事件

c++ - 检查类型是否是模板的实例化

c - SetSecurityInfo 返回拒绝访问

windows - 在 Git Bash 中找不到 javac 命令

c - 使用 Win32 函数基于用户输入动态滚动

c++ - C++ 的 Visual Studio ?

c++ - 如何使用 fopen 和文件指针打开多个文件?

python - 使用 cython : all strings are empty 包装一个 c++ DLL

c++ - g++、clang++、使用 libboost 的编译花絮——当 g++7 成功时,g++8 编译失败;