码迷,mamicode.com
首页 > 编程语言 > 详细

关于C++项目指针对象未被初始化的问题(0xcdcdcd)

时间:2016-08-20 23:09:07      阅读:619      评论:0      收藏:0      [点我收藏+]

标签:

http://blog.csdn.net/devfun/article/details/6900086

昨天我试图将一个封装好的模块加入到正在开发的项目中,这个模块不是单独的类,而且对应的声明和实例。
在处理过程中发现了如下问题。

由于我自己写代码的时候,在变量初始化的时候总会做

Object *abc;
abc = null; //我会初始化一下指针,将其置为空
abc = new Object[N];

的操作,所以一直 没有注意到。但新的第三方模块名没有这步操作。

Object *abc;
//abc = null; //第三方模块不会有置空这一步。
abc = new Object[N];

于是当new地址的时候,总会报错,我跟过去abc的地址总为0xcdcdcd。

去网上搜,发现这个0xcdcdcd是表示未被初始化的地址,为一个非法地址,必须置空。于是我就很困惑,因为第三方模块并没有地方置空,但在其实例上可以正常运行,于是我就怀疑可能是该实例在初始化模块所属类的时候,将其申请成静态的,于是同为跟代码,最后发现该模块所属类的new通过operator new重写了new方法,这样在每次申请的时候就会有个固定的空间用于存放数据。

这样儿做的好处是同时也可以检测内存大小~

关于C++项目指针对象未被初始化的问题(0xcdcdcd)

标签:

原文地址:http://www.cnblogs.com/eustoma/p/5791333.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!