下面代码有new,但没有delete,可以么?是不是应该在最后加上一个delete [] dp;呢?否则会不会内存泄露呢

intmain(){Date*dp=newDate;dp->set(2000,12,6);if(dp->isLeapYear())(*dp).print();}在编译并执... int main(){
Date* dp=new Date;
dp->set(2000,12,6);
if(dp->isLeapYear())
(*dp).print();
}
在编译并执行程序时,没有加delete dp;也成功了。
展开
 我来答
井钰gQ
2008-05-10 · TA获得超过2480个赞
知道大有可为答主
回答量:1303
采纳率:0%
帮助的人:1493万
展开全部
动态申请数组才需要delete [] dp;这样释放的
也就是说,如果你
int *p=new int[20];
这样才需要delete[]p;
而你上面的程序是动态申请了一个类对象的指针
因此使用delete的时候只要
delete dp;即可
125516639
2008-05-10 · TA获得超过452个赞
知道小有建树答主
回答量:184
采纳率:50%
帮助的人:132万
展开全部
程序退栈时会自动释放所有的空间,
Date* dp=new Date; 指明是申请一个变量
只需用delete dp;
不用delete [] dp
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zetar
2008-05-10 · TA获得超过156个赞
知道答主
回答量:65
采纳率:0%
帮助的人:0
展开全部
new和delete应配对,否则会内存泄露

你这里用delete dp
delete [] dp是用来释放数组的空间的,比如如果你用了dp = new Date[10],就用delete [] dp
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yili16438
2008-05-10 · TA获得超过255个赞
知道小有建树答主
回答量:459
采纳率:100%
帮助的人:329万
展开全部
加delete是一个良好的习惯
内存泄漏主要是担心访问到不该访问的地方
一般指针使用完后,都要设置成NULL
还有,你这应该是直接delete dp;不是数组
最后应该加个return 0;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式