这不是关于正确编码的问题.
我的问题是TECHNICALLY是在需要的程序退出/关闭时释放对象?
换句话说,让我们说为了争论,你有一个关闭你的应用程序的按钮,但是在你关闭你显示一个图像之前,然后关闭应用程序.
在关闭应用程序之前,您是否需要释放该映像视图?当程序退出时,内存将自动释放,否则如果不释放内存,内存将保持“活动”吗?
我明白你应该“释放”,我的问题是关于技术方面的问题,幕后发生什么.
谢谢.
解决方法 这不是必需的.但是,如果您使用valgrind或类似的工具,您很快会发现,将所有的内存悬空,使您发生虚假警告.在linux方面,使用sbrk系统调用生成堆.这样一来,整个处理器内存空间就会增加一个大块(因此只需要一个sbrk为许多malloc提供足够的空间).当进程消失时,内核将回收sbrk分配的所有内存.这就是为什么你是安全的.内核还将关闭该进程打开的任何文件描述符.
有几个可以出现的问题.如果您的进程在不合时宜的时刻,任何打开的文件描述符将被重复.我已经看到这个表现本身是一个TCP连接,在原始进程死亡之后神秘地挂起来,这是令人讨厌的.另外还有其他资源只是不是处理范围的,所以当进程死机时它们不会被回收.这包括共享内存段,临时文件,命名管道和UNIX套接字,以及大量其他IPC机制.
综上所述?记忆不错文件描述符通常很好.一些更深奥的IPC功能将被破坏,如果不清理.
总结以上是内存溢出为你收集整理的目标c – 是否需要程序退出对象发布?全部内容,希望文章能够帮你解决目标c – 是否需要程序退出对象发布?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)