我试图访问未初始化的内存,
int *ptr;
// to this and that
*ptr = 8;
return 0;我得到了例外,
在sam2.exe中0x0041145e处未处理的异常: 0xC0000005:访问冲突写入位置0xcccccccc。
现在我知道0xcccccccc是用于VisualC++中未初始化指针的值。但我不明白0x0041145e和0xC0000005的含义。
为了澄清,我问这个问题是因为我试图制作关于YouTube关于魔术数字的视频教程。
谢谢你的帮助。谢谢。
发布于 2013-07-30 12:39:16
0xC0000005是访问冲突错误代码。这种带有指针的非法操作会导致访问冲突,因此将看到此代码。另一方面,0x0041145e不是一个神奇的数字,它是可执行文件中违规指令的位置,对于其他做同样事情的程序来说是不同的。
发布于 2013-07-30 12:42:49
这是使用指针的错误方式。上面的行告诉您ptr持有指向指针的地址。默认情况下,存储的地址是一些垃圾,这取决于编译器,在错误的情况下,假设地址是0xcccccccc是安全的。
0x0041145e是正在执行的指令的地址,或者这是堆栈顶部的指令。
所以您的代码没有执行。请像这样修改代码。
int \*ptr = (int \*)malloc(sizeof(int)); \*ptr = 8; return 0;https://stackoverflow.com/questions/17947181
复制相似问题