目标c – 是否需要程序退出对象发布?

目标c – 是否需要程序退出对象发布?,第1张

概述我有一个技术问题. 这不是关于正确编码的问题. 我的问题是TECHNICALLY是在需要的程序退出/关闭时释放对象? 换句话说,让我们说为了争论,你有一个关闭你的应用程序的按钮,但是在你关闭你显示一个图像之前,然后关闭应用程序. 在关闭应用程序之前,您是否需要释放该映像视图?当程序退出时,内存将自动释放,否则如果不释放内存,内存将保持“活动”吗? 我明白你应该“释放”,我的问题是关于技术方面的问题 我有一个技术问题.
这不是关于正确编码的问题.

我的问题是TECHNICALLY是在需要的程序退出/关闭时释放对象?

换句话说,让我们说为了争论,你有一个关闭你的应用程序的按钮,但是在你关闭你显示一个图像之前,然后关闭应用程序.

在关闭应用程序之前,您是否需要释放该映像视图?当程序退出时,内存将自动释放,否则如果不释放内存,内存将保持“活动”吗?

我明白你应该“释放”,我的问题是关于技术方面的问题,幕后发生什么.

谢谢.

解决方法 这不是必需的.但是,如果您使用valgrind或类似的工具,您很快会发现,将所有的内存悬空,使您发生虚假警告.

在linux方面,使用sbrk系统调用生成堆.这样一来,整个处理器内存空间就会增加一个大块(因此只需要一个sbrk为许多malloc提供足够的空间).当进程消失时,内核将回收sbrk分配的所有内存.这就是为什么你是安全的.内核还将关闭该进程打开的任何文件描述符.

有几个可以出现的问题.如果您的进程在不合时宜的时刻,任何打开的文件描述符将被重复.我已经看到这个表现本身是一个TCP连接,在原始进程死亡之后神秘地挂起来,这是令人讨厌的.另外还有其他资源只是不是处理范围的,所以当进程死机时它们不会被回收.这包括共享内存段,临时文件,命名管道和UNIX套接字,以及大量其他IPC机制.

综上所述?记忆不错文件描述符通常很好.一些更深奥的IPC功能将被破坏,如果不清理.

总结

以上是内存溢出为你收集整理的目标c – 是否需要程序退出对象发布?全部内容,希望文章能够帮你解决目标c – 是否需要程序退出对象发布?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1031519.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存