21xrx.com
2024-12-22 21:40:18 Sunday
登录
文章检索 我的文章 写文章
C++中如何使用new创建数组?
2023-07-03 11:47:30 深夜i     --     --
C++ new 创建 数组

在C++中,我们可以使用 new 运算符来动态地分配内存。new 运算符可以用于创建单个对象或对象数组。

要创建一个数组,我们可以在 new 运算符后面指定数组元素的类型和数量,例如:


int *arr = new int[10]; // 创建一个包含10个int类型元素的数组

这将创建一个名为 arr 的指针,该指针指向包含10个整数元素的数组。我们可以像使用静态数组一样使用它,例如:


arr[0] = 1;

arr[1] = 2;

要释放数组,我们需要使用 delete[] 运算符,例如:


delete[] arr; // 释放动态分配的数组内存

务必使用 delete[] 运算符,而不是 delete 运算符,因为它能够释放数组元素的内存。

我们也可以使用指针数组来创建二维数组。例如,以下代码将创建一个2x3的二维数组:


int **arr = new int*[2];

for(int i=0; i<2; i++) {

  arr[i] = new int[3];

}

这将创建一个指向 int 类型指针的指针 arr,并使用循环为每个指针分配一个包含 3 个 int 类型元素的数组。我们可以通过以下方式访问数组元素:


arr[0][0] = 1;

arr[0][1] = 2;

释放二维数组时,需要先释放每个指针指向的数组,再释放指针本身。例如:


for(int i=0; i<2; i++) {

  delete[] arr[i];

}

delete[] arr;

在使用 new 和 delete 进行动态内存分配时,务必注意防止内存泄漏和悬挂指针等问题。建议使用 C++11 中的智能指针,如 std::unique_ptr 和 std::shared_ptr,来管理动态内存。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复