Vc内存错误码大全

 0x0000007d:表示没有足够的内存来启动Microsoft Windows操作系统。这个是 <SPAN style="COLOR: #ff6600">系统停止码</SPAN> ,不属于VC内存错误码,只是某些情况下也会弹出这些停止码,特别是发布程序时。  
   
  
0xabababab - Memory following a block allocated by LocalAlloc(局部变量内存块)。微软 HeapAlloc()用于标记已分配的对内存前后 "没有使用"的内存块。  
  
0xABADCAFE:启动此值初始化所有的可用内存来捕捉出错的指针。  
  
0xBAADF00D:微软的LocalAlloc的(LMEM_FIXED)用于标记未初始化分配的堆内存。  
  
0xBADCAB1E:当Microsoft EVC调试器连接被中断时返回的错误码。  
  
0xBEEFCACE:微软NET中作为一个资源文件的幻数。  
  
0xC0000005 访问冲突 :可能是数组越界,访问已经释放的空间。  
  
0xC0000008:无效的句柄。  
  
0xBAADF00D - HeapAlloc分配的内存。  
  
0xcccccccc - Uninitialized locals in VC6 when you compile w/ /GZ(当编译时没有初始化的局部变量,主要是DEBUG下面,系统会给没有用到的内存块填充 int 3.Release版本不会填充)。微软C++运行库用于标记未初始化的<SPAN style="COLOR: #ff6600">栈内存</SPAN>。  
 在VC Debug版本里,栈中分配的值都会先用0xCCCCCCCC来处理一下,所以大家在Debug模式下调试程序发现在引用0xCCCCCCCC这样的值,就说明在试图使用一个没有初始化的值。这就是在Debug模式下调试的好处之一,如果在Release模式下,系统就不会用0xCCCCCCCC来处理一下了。至于为什么选择0xCCCCCCCC大概是因为 端点中断int 3 对应的机器码就是0xCC吧,我也不是很有把握。用固定的地址是可以访问指针所指向的数据的。但是在一般情况下,Windows可能会报非法操作。  
DEBUG版本为了能让程序员更早的发现错误,把堆栈上的数据对初始化成了0xcc,也就是说局部变量如果不初始化,那么DEBUG版本中就会是0xCC。  
       在给一个指针对象传值时,没有用取地址符&,直接把对象写在代码那,也可能报这个错误。  
可以认为0x0cc就是有特殊含义的占位符,对于指针而言,它跟NULL是一个意思。  
  
0xCDCDCDCD:Created but not initialised()定义但未初始化。微软C++运行库用于标记未初始化的<SPAN style="COLOR: #ff6600">堆内存</SPAN>。  
  
0xdddddddd - 已删除的对象。Deleted(已删除的,CRT中称处于这种状态的内存区为 Dead Land。同时边界DWORD也同时被清除。)  
  
0xDEADDEAD:当用户手动启动崩溃时的微软Windows停止错误码。  
  
0xfdfdfdfd - 微软用于标记堆的前后无人使用的标识符。  
  
0xfeeefeee - Freed memory set by NT's heap manager堆管理器释放的内存区域。由HeapFree()释放的堆内存。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值