堆、栈与内存管理

一、所谓stack,所谓heap

 stack objects的生命期

 static local objects的生命期

 global objects的生命期

 heap objects1的生命期

 二、new:先分配memory,再调用ctor

 三、delete:先调用dtor,再释放memory

 四、动态分配所得的内存块,in VC

 灰色部分为调试mode下的 debug header,紫色的部分为cookie,记录这块内存块的大小。由于内存块大小要为16的倍数,所以要自动填充4*3的大小。

动态分配所得的array

 五、array new一定要搭配array delete

 第一种写法是对的,这样加了[ ],编译器才知道要删除的是一个数组,第二种写法只会删除一个。但是两种写法都不会造成内存块删除不了,内存泄漏的是指针指向的的heap objects造成的内存泄漏。

 六、把ctors放在private区

 更好的单例模式的写法是:

 这样写的话,如果没有任何人要使用这个单例的话,那么这个单例就不存在。一旦有人用了这个单例,这个单例才出现,且只有一份。

posted @   Niiiinomiya  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示