删除堆上的数组

谁学逆向工程 2010-01-21 11:33:33
cat*family=new cat[7];
这一共建立了7个对象,我现在想删除第三个和第五个。语法怎么写
...全文
153 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
forster 2010-01-21
  • 打赏
  • 举报
回复
先不删呗 要删一起删
mstlq 2010-01-21
  • 打赏
  • 举报
回复
很负责任地告诉楼主,没有办法单单删除某几个……
一起申请的,就要一起销毁……

请楼主更改设计……
谁学逆向工程 2010-01-21
  • 打赏
  • 举报
回复
#include "iostream"
using namespace std;
class cat
{
public:
cat():itsage(1){cout<<"...构造..."<<endl;}
~cat(){cout<<"...析构..."<<endl;}
int getage()const {return itsage;}
void setage(int age){itsage=age;}
private:
int itsage;
};
void main()
{
cat*family=new cat[7];
}
_JeffreyWu 2010-01-21
  • 打赏
  • 举报
回复
楼主,把你代码贴全好吧
谁学逆向工程 2010-01-21
  • 打赏
  • 举报
回复
8楼的,你程序崩溃
kakam 2010-01-21
  • 打赏
  • 举报
回复
delete &a[2];
delete &a[4];
或者
delete (a+2);
delete (a+4);
编译可以通过,但会提示你无效的堆指针,哇哈哈
AAA20090987 2010-01-21
  • 打赏
  • 举报
回复
不懂,等待高手回答。
谁学逆向工程 2010-01-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 macrojj 的回复:]
cat*family=new cat[7];
你这样申请的 明显不可能像你要求的那样删除

[/Quote]

怎么写,怎么删除
macrojj 2010-01-21
  • 打赏
  • 举报
回复
cat*family=new cat[7];
你这样申请的 明显不可能像你要求的那样删除
_JeffreyWu 2010-01-21
  • 打赏
  • 举报
回复
无代码无真相
谁学逆向工程 2010-01-21
  • 打赏
  • 举报
回复
1楼和2楼都编译不过去啊。我用VC6
_JeffreyWu 2010-01-21
  • 打赏
  • 举报
回复
delete family[2];
delete family[4];
family[2] = NULL
family[4] = NULL;
kakam 2010-01-21
  • 打赏
  • 举报
回复
delete family+2;
delete family+4;
superlee19 2010-01-21
  • 打赏
  • 举报
回复
你这个要求有点过分,一次new的内存必须一次delete掉,这个是由C++隐式计数决定的
如果要对单个对象进行删除,用list之类的容器更简单
we_sky2008 2010-01-21
  • 打赏
  • 举报
回复
只有重新申请空间
将需要的拷贝至新的空间内
然后将原空间释放
we_sky2008 2010-01-21
  • 打赏
  • 举报
回复
只有重新申请空间
将需要的拷贝至新的空间内
然后将原空间释放
谁学逆向工程 2010-01-21
  • 打赏
  • 举报
回复
在问个别的问题:
int *p=new int[5];
这里定义了5个元素,如果突发发现定义的不够了,想在后面在加5个元素,怎么办

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧