六、内存高级话题
Author: XFFer_
文章目录
01 new、delete的进一步认识
1 总述与回顾
2 从new说起
从new说起
new类对象时加不加括号的区别
class A {
public:
int m_i;
};
A* pa = new A(); //m_i = 0
A* pa_t = new A; //m_i = 随机值
- 当类有成员变量,带有括号的初始化会把一些和成员变量有关的内存清零
- 当类中有构造函数,则这两种写法得到的结果没有区别
new干了啥
new 可以叫关键字/操作符 fn + F12
会跳转到operator new。
可以在Debug状态下使用 调试
-> 窗口
-> 反汇编
得到如下:
这里可以看出call operator new
这个函数
这里可以看到call malloc
C语言中内存分配函数malloc(size传入堆中分配内存的大小)
这里可以看到call operator delete
这个函数