一,内存分配区域
1,栈区:处理器级别,速度快,但空间有限(函数,局部变量等)
2,堆区:开发者自己手动分配的内存(动态内存分配)
函数:malloc ,realloc ,calloc ,free ,关键字:new,delete
3,静态存储区域(静态全局区):全局变量 ,静态变量等
4,代码区:存储代码
5,常量区:存储常量
二,动态内存分配
malloc()/free() 按照直接操作 类别:函数
new /delete 按照类型操作 类别:运算符(关键字)
三,创建对象过程
1,分配内存
2,初始化内存(构造函数,拷贝构造)
A*pa=new A();
3,释放内存
delete pa; //会调用析构函数去清理内存 free()不会调用析构
pa=nullptr;//手动置空,不置空会变成野指针
int *p;
//指针默认为0XCCCCCCCC ,而不是0X000000000
if(p==NULL)//这里就会跳过