C/C++ 遇到0xcccccccc访问冲突

最近一直在纠结这个问题.

最近写代码,总是遇到这个问题,一旦遇到这个问题,以前好使的代码也就不好使了。很费解,上网搜集了下资料....

这个0xcccccccc是DEBUG模式下,编译器为没有初始化的指针填充的地址值。当你进入到断电时,也会看到很多其他的未初始化的指针都是这个值

而为什么会是这个值呢?

因为,0xcc是INT 3的机器码,而这个INT 3是留给编译器中断时用的 替换向量,一旦断电继续执行下,就会替换掉这个值。

为什么系统要填充这个固定的值呢?

因为,在DEBUG模式下,就是为了测试代码的运行。如果每次都随机指定一个地址,那最后测试的结果也会不一样。如果随机填充了一个地址,这个地址在未经初始化的情况下使用了,但是换到RELEASE模式下的时候,就会出现意外的情况。因此,添加这个值,确保指针在使用前都经过了初始化。

其他还有固定的地址值对应的错误:

0xcdcdcdcd - Created but not initialised 

0xdddddddd - Deleted

0xfeeefeee - Freed memory set by NT's heap manager

0xcccccccc - Uninitialized locals in VC6 when you compile w/ /GZ

0xabababab - Memory following a block allocated by LocalAlloc()

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大大的微笑

RMI

RMI定义:     RMI即远程方法调用(Remote Method Invocation)。能够让在某个java虚拟机上的对象像调用本地对象一样调用另一个j...

27650
来自专栏小狼的世界

PHP中的PathInfo

PHP中的全局变量$_SERVER['PATH_INFO']是一个很有用的参数,众多的CMS系统在美化自己的URL的时候,都用到了这个参数。

11730
来自专栏一个会写诗的程序员的博客

8.3 Spring Boot集成Scala混合Java开发参考资料

本章我们使用Spring Boot集成Scala混合Java开发一个Web性能测试平台。

20910
来自专栏分布式系统进阶

Librdkafka对Kafka Metadata的封装和操作

int rd_kafka_metadata_cache_wait_change (rd_kafka_t *rk, int timeout_ms) { int ...

34910
来自专栏程序员互动联盟

linux设备驱动第五篇:驱动中的并发与竟态

综述 在上一篇介绍了linux驱动的调试方法,这一篇介绍一下在驱动编程中会遇到的并发和竟态以及如何处理并发和竞争。 首先什么是并发与竟态呢?并发(concurr...

372100
来自专栏Ryan Miao

命令行打印文件树列表: tree

Linux & Mac 1.下载tree lib //mac brew install tree //centos yum install tree //ubu...

36860
来自专栏乐沙弥的世界

使用 runcluvfy 校验Oracle RAC安装环境

--*****************************************

12920
来自专栏xdecode

Spring MVC核心技术

目录 异常处理 类型转换器 数据验证 文件上传与下载 拦截器 ----  异常处理 Spring MVC中, 系统的DAO, Service, Controll...

35270
来自专栏微信公众号:Java团长

SSM框架相关基础面试题整理

String,ModelAndView,List,Set 等 一般String,Ajax请求,返回一个List集合

27430
来自专栏hbbliyong

Spring Boot搭建Web项目常用功能

     首先要弄清楚为什么要包装统一结构结果数据,这是因为当任意的ajax请求超时或者越权操作时,系统能返回统一的错误信息给到前端,前端通过封装统一的ajax...

37220

扫码关注云+社区

领取腾讯云代金券