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

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,它是怎么控制,用完哪个自动释放的?

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