C++动态分配内存

本文默认已有C语言基础,理解内存分区,掌握malloc、calloc、realloc、free等C语言中的动态内存操作函数

动态分配内存

C++中动态分配内存方法与C语言中极为相似。

new

C++使用new运算符进行动态分配内存。不同之处在于:

  1. C语言必须使用sizeof运算符计算数据类型大小,而C++可自动计算数据类型大小。
  2. C语言必须使用强制类型转换,而C++不需要。
Type *指针名=new Type;//动态申请单个变量
//C:Type *指针名=malloc(sizeof(Type));
Type *指针名=new Type[个数];//动态申请数组
//C:Type *指针名=malloc(sizeof(Type)*个数);

delete

C++使用delete运算符释放由new申请的内存。不同之处在于:

  1. C语言对于单个变量、数组的释放语法都是相同的,但C++需要明确用[]区分。

注意delete释放的只是动态申请到的内存,而指针是先前通过定义得到的,其仍然存在,后续仍可使用该指针。

delete 指针名;//释放单个变量
delete []指针名;//释放数组
//C:free(指针名);
posted @ 2025-03-28 12:46  椰萝Yerosius  阅读(39)  评论(0)    收藏  举报