首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++代码在Visual中异常的含义是什么?

C++代码在Visual中异常的含义是什么?
EN

Stack Overflow用户
提问于 2013-07-30 12:34:55
回答 2查看 192关注 0票数 0

我试图访问未初始化的内存,

代码语言:javascript
复制
int *ptr;

// to this and that

*ptr = 8;
return 0;

我得到了例外,

在sam2.exe中0x0041145e处未处理的异常: 0xC0000005:访问冲突写入位置0xcccccccc。

现在我知道0xcccccccc是用于VisualC++中未初始化指针的值。但我不明白0x0041145e0xC0000005的含义。

为了澄清,我问这个问题是因为我试图制作关于YouTube关于魔术数字的视频教程。

谢谢你的帮助。谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-30 12:39:16

0xC0000005是访问冲突错误代码。这种带有指针的非法操作会导致访问冲突,因此将看到此代码。另一方面,0x0041145e不是一个神奇的数字,它是可执行文件中违规指令的位置,对于其他做同样事情的程序来说是不同的。

票数 3
EN

Stack Overflow用户

发布于 2013-07-30 12:42:49

这是使用指针的错误方式。上面的行告诉您ptr持有指向指针的地址。默认情况下,存储的地址是一些垃圾,这取决于编译器,在错误的情况下,假设地址是0xcccccccc是安全的。

0x0041145e是正在执行的指令的地址,或者这是堆栈顶部的指令。

所以您的代码没有执行。请像这样修改代码。

代码语言:javascript
复制
 int \*ptr = (int \*)malloc(sizeof(int));
代码语言:javascript
复制
 \*ptr = 8;
代码语言:javascript
复制
 return 0;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17947181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档