C++的动态内存分配
一 关键字new和delete
-
C++中通过new关键字进行动态内存分配
-
C++中的动态内存申请是基于类型进行的
-
delete关键字用于内存释放
//变量申请 Type* pointer = new Type; //.... delete pointer; //数组申请 Type * pointer = new Type[N]; delete[] pointer;
二. new关键字的初始化
-
new关键字可以开辟内存空间的同时对内存空间初始化
int * pi = new int(1); float * pf = new float(2.0f); char * pc = new char('c'); printf("%d\n", &pi); delete
三.new关键字与malloc函数的区别
-
new关键字
new关键字是C++的一部分 new以具体类型为单位进行内存分配 new在申请单个类型变量时可进行初始化 new关键字回自动调用类内的构造函数
-
malloc函数
malloc是由C库提供的函数 malloc以字节为单位进行内存分配 malloc不具备内存初始化的特性 malloc不会调用类内的构造函数