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

用new和delete时的有关问题

2012-02-07 
用new和delete时的问题定义一个这样的结构体:structstCell{unsignedPic:6unsignedNum:14}然后我在程序

用new和delete时的问题
定义一个这样的结构体:
struct   stCell{
unsigned   Pic:6;
unsigned   Num:14;
};

然后我在程序中这样给它分配空间:
stCell*   m_CellLayerOne   =   new   stCell[n];

当我结束时,又这样释放掉它所占的空间:
      if(   m_CellLayerOne   )
{
delete[]   m_CellLayerOne;
                                    m_CellLayerOne[100]=33;//执行这一句时不出错!
m_CellLayerOne   =   NULL;
}

但当我执行delete[]   m_CellLayerOne;后,m_CellLayerOne所占的空间并没有被释放掉

怎么样释放掉m_CellLayerOne所占的空间?

[解决办法]
delete 执行析构,并告知系统这块内存我不用了,可以被其他进程使用了。

但是,只要没有需要保护的内容操作这块内存,
那么 当前进程访问这个地址的内存还是不会出错的。

但是你无法保证这个时候它是安全的,
因为可能没有进程访问这个地址,
也可能有,
危险太大。

热点排行