C++中的new
动态内存分配
在C语言中我们学习过动态内存分配一共有这么几个操作:
malloc
free
realloc
alloc
1.malloc最常见,申请指定大小的内存,如果成功则返回申请内存的首地址,如果失败返回NULL。
2.free操作释放由malloc、realloc和alloc申请的内存,其实就是释放在堆中申请的内存。
3.realloc是在堆上重新申请指定大小的内存,它需要传入已经在堆上申请的内存的首地址以及指定再次申请的内存的大小。
4.alloc申请指定大小和块数的内存,并且把这片区域初始化为0。
在C++中上述的操作依然适用,但是我们还可以采用如下的一对操作:
new
delete
new的操作比malloc要灵活的多,它不仅可以在堆上进行申请,还可以在静态区域进行申请。关于new的内容我们需要了解以下几个方面:
1.使用new运算符申请内存;
//使用new申请单个变量和申请变量数组
int *p_int = new int (6); //申请一个int并且设置值为6<