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

有关delete回收空间的简单有关问题

2012-02-19 
有关delete回收空间的简单问题对于字符数组,是这样回收的char*pnewchar(100)……delete[]p如果是vector,

有关delete回收空间的简单问题
对于字符数组,是这样回收的
char   *   p   =   new   char(100);

……
delete[]   p;

如果是vector,是不是只要delete   p就可以了,如下:
std::vector <int>   *p=new   std::vector <int> ;

......

delete   p;

我的理解是,通过new操作,创建了一个vector对象,p指向它,所以只需要delete   p,这样机器自然知道这个对象有多大,是不是这样?我的理解正确吗?
对于list等其他数据结构,也是这样做就可以了?

(因为我运行一个小程序,通过任务管理器查看该进程内存消耗,发现delete   p后,内存数字没有减少,反而还多占用了几个k,所以才有此一问)

希望高手能作详细的解释。
谢谢!




[解决办法]
char * p = new char(100); //笔误吧!
应该是 char * p = new char[100];
^_^
[解决办法]
std一般直接声明的吧,它作为容器,自己管理自己元素的内存分配的.你做的那个对象只是针对那个容器的,所以这里要理解容器和元素的关系.

热点排行