C++,NEW,DELETE

[复制链接]
查看11 | 回复3 | 2009-11-13 15:30:36 | 显示全部楼层 |阅读模式
new 关键字实际上做了三件事:获得一块内存空间、调用构造函数、返回正确的指针delete做了两件事:调用析构函数、释放内存空间。
回复

使用道具 举报

千问 | 2009-11-13 15:30:36 | 显示全部楼层
如果不用delete显式的来回收,不会调用,因为是在堆上分配的,堆上的东西与函数无关。delete会先调用析构函数(如果未定义会调用默认的析构函数),然后释放内存。当然程序退出了,内存是会被操作系统回收的。
回复

使用道具 举报

千问 | 2009-11-13 15:30:36 | 显示全部楼层
自己手动释放。不过你的main函数退出了。exe进程结束,释放不释放,交给操作系统帮你去清理进程内存空间。你的new的东西在进程结束的时候一并清除。如果你的定义在其他函数中。main函数还在进行你就的自己delete 了。
回复

使用道具 举报

千问 | 2009-11-13 15:30:36 | 显示全部楼层
这个提问好像有点问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行