内存管理与智能指针:原理、操作与优化
1. 非托管内存:使用 new/delete
在 C++ 中,当变量 i 占用的内存需要释放回系统时,我们使用 free() 进行内存释放,之后将 i 指向内存地址 0,即空指针。这样做是为了明确表明变量 i 不再指向有效的内存段。
1.1 new 与 malloc 的区别
new 操作符和 malloc 调用类似,都用于分配连续的内存空间,但 new 在分配内存后会自动调用对象的构造函数。而使用 new 分配的对象,必须使用 delete 来释放内存,而不是 free() 。
| 操作符/函数 | 功能 | 构造函数调用 |
|---|---|---|
malloc |
分配连续的内存空间 | 无 |
new |
分配连续的内存空间 | 自动调用对象的构造函数 |
超级会员免费看
订阅专栏 解锁全文
870

被折叠的 条评论
为什么被折叠?



