C++动态分配内存
本文默认已有C语言基础,理解内存分区,掌握malloc、calloc、realloc、free等C语言中的动态内存操作函数
动态分配内存
C++中动态分配内存方法与C语言中极为相似。
new
C++使用new运算符进行动态分配内存。不同之处在于:
- C语言必须使用
sizeof运算符计算数据类型大小,而C++可自动计算数据类型大小。 - C语言必须使用强制类型转换,而C++不需要。
Type *指针名=new Type;//动态申请单个变量
//C:Type *指针名=malloc(sizeof(Type));
Type *指针名=new Type[个数];//动态申请数组
//C:Type *指针名=malloc(sizeof(Type)*个数);
delete
C++使用delete运算符释放由new申请的内存。不同之处在于:
- C语言对于单个变量、数组的释放语法都是相同的,但C++需要明确用
[]区分。
注意delete释放的只是动态申请到的内存,而指针是先前通过定义得到的,其仍然存在,后续仍可使用该指针。
delete 指针名;//释放单个变量
delete []指针名;//释放数组
//C:free(指针名);

浙公网安备 33010602011771号