我是靠谱客的博主 文静小土豆,最近开发中收集的这篇文章主要介绍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()释放的堆内存。

最后

以上就是文静小土豆为你收集整理的Vc内存错误码大全的全部内容,希望文章能够帮你解决Vc内存错误码大全所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部