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

delete[]可以指定要delete的数量吗?该怎么解决

2012-04-05 
delete[]可以指定要delete的数量吗?比如int* a new int[100]我现在只想释放前50个元素,可以这样吗?dele

delete[]可以指定要delete的数量吗?
比如int* a = new int[100];
我现在只想释放前50个元素,可以这样吗?
delete [49] a;

[解决办法]
当然不可以这么用,你申请的不是数组,是和int型的指针,不能用delete指针数组的形式删除。
[解决办法]
每一块动态分配的空间都只能完整的被释放,不可以只释放其中一部分的。
[解决办法]

探讨

那那个智能指针是怎么做到的,auto_ptr
如果直接 new int[100]
把a放进auto_ptr1,把a+50放进auto_ptr2,它是怎么控制,用完哪个自动释放的?

[解决办法]
貌似编译不过

热点排行