【菜鸟】一个关于【new】的问题

qsd099800 2013-12-31 02:21:07
据说每个NEW都要有个delete
但是如果我没有delete 貌似在整个程序结束后也会释放掉
可不可以理解为 不管我在程序哪个位置NEW了 只要没有delete 在整个程序结束前 那个东西都存在?
如果我这样呢?

int* p = new int[100];

int main()
{
````````
}
...全文
170 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
千树之影 2013-12-31
  • 打赏
  • 举报
回复
程序进程结束,你分配的所有内存会归还操作系统。
cheney1227 2013-12-31
  • 打赏
  • 举报
回复
应该是看生命周期吧!
赵4老师 2013-12-31
  • 打赏
  • 举报
回复
存在
  • 打赏
  • 举报
回复
楼主,这个要看生命周期;;; 直接了当的说如果你在一个函数中开辟一块内存,当函数执行完毕,内存就释放掉了.
  • 打赏
  • 举报
回复
现在都有内存回收机制,没被delete,内存是被占用的,但是之后会被系统回收。
大奶兔白糖 2013-12-31
  • 打赏
  • 举报
回复
引用 5 楼 qsd099800 的回复:
引用 2 楼 hm530 的回复:
死了都要在!
假如我写了delete 但是还没跑到delete那 程序崩溃了 我new的内存会被回收吗 还是内存泄露
崩都崩了。。。。
qsd099800 2013-12-31
  • 打赏
  • 举报
回复
引用 2 楼 hm530 的回复:
死了都要在!
假如我写了delete 但是还没跑到delete那 程序崩溃了 我new的内存会被回收吗 还是内存泄露
zhuobattle 2013-12-31
  • 打赏
  • 举报
回复
引用 3 楼 qsd099800 的回复:
[quote=引用 1 楼 zhuobattle 的回复:] [quote=引用 楼主 qsd099800 的回复:] 据说每个NEW都要有个delete 但是如果我没有delete 貌似在整个程序结束后也会释放掉 可不可以理解为 不管我在程序哪个位置NEW了 只要没有delete 在整个程序结束前 那个东西都存在? 如果我这样呢? int* p = new int[100]; int main() { ```````` }
是的p一直存在[/quote]mian函数跑完了 P也还在吗[/quote] 是的,你可以atexit注册一个main退出能够执行的函数看看,呵呵,main函数结束,crt还要执行 代码的。
qsd099800 2013-12-31
  • 打赏
  • 举报
回复
引用 1 楼 zhuobattle 的回复:
[quote=引用 楼主 qsd099800 的回复:] 据说每个NEW都要有个delete 但是如果我没有delete 貌似在整个程序结束后也会释放掉 可不可以理解为 不管我在程序哪个位置NEW了 只要没有delete 在整个程序结束前 那个东西都存在? 如果我这样呢? int* p = new int[100]; int main() { ```````` }
是的p一直存在[/quote]mian函数跑完了 P也还在吗
  • 打赏
  • 举报
回复
死了都要在!
zhuobattle 2013-12-31
  • 打赏
  • 举报
回复
引用 楼主 qsd099800 的回复:
据说每个NEW都要有个delete 但是如果我没有delete 貌似在整个程序结束后也会释放掉 可不可以理解为 不管我在程序哪个位置NEW了 只要没有delete 在整个程序结束前 那个东西都存在? 如果我这样呢? int* p = new int[100]; int main() { ```````` }
是的p一直存在

65,189

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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