首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

为何new char在内存中是这样的

2013-10-18 
为什么new char在内存中是这样的?我用char *xnew char开辟了两个动态空间(如图中红色方框中),为什么他们

为什么new char在内存中是这样的?
我用char *x=new char开辟了两个动态空间(如图中红色方框中),为什么他们前后四个都是0xfd,他本身是0xcd。为何new char在内存中是这样的 内存 ,C++ C
[解决办法]
这保存是内存上电初始化就是这样的, 这个0xCD. 如果这个内存被使用过, 你分配到估计就不是这个样子了.

至于0xfd, 这个内存管理加的标记, 如果你不小写越界了, 即把0xfd覆盖了, 那么你delete的时候就会有问题了.
[解决办法]

引用:
也就是说,0xcd是初始化值,前后4个0xfd是用来标记内存范围的?那有时候我new char[1],但是也可以放很多char进去。

debug在new的时候会自动将这块区域填充0XCD,同理,RELEASE填充0XCC,你new char[1]然后放很多东西进去就是内存越界,会引起各种问题。

热点排行