📜  如何在 C++ 中使用 new 初始化数组(1)

📅  最后修改于: 2023-12-03 15:38:13.780000             🧑  作者: Mango

如何在 C++ 中使用 new 初始化数组

在 C++ 中,我们可以使用 new 运算符来动态地创建数组。使用 new 可以让我们在运行时决定数组的大小,而不是在编译时就确定数组大小。

创建动态数组

使用 new 创建动态数组的格式如下:

type *array_name = new type[length];

其中,type 是数组元素的类型,array_name 是数组的名称,length 是数组的长度。这里的 length 可以是一个整型变量或者常量。

下面是一个创建动态数组的示例:

int *numbers = new int[5];

这行代码创建了一个包含 5 个整型变量的数组。我们可以通过下标访问数组元素,就像访问静态数组一样:

numbers[0] = 1;
numbers[1] = 2;
numbers[2] = 3;
numbers[3] = 4;
numbers[4] = 5;
初始化动态数组

在创建动态数组的同时,我们也可以对数组进行初始化。C++ 提供了两种方式来初始化动态数组:通过花括号 {} 进行初始化和使用圆括号 () 进行初始化。

使用花括号进行初始化

使用花括号进行初始化的格式如下:

type *array_name = new type[length]{initial_values};

这里的 initial_values 是一个用逗号分隔的初始值列表,包含与数组元素类型相同的值。如果列表中的元素数量少于数组的长度,那么未初始化的元素将被自动初始化为默认值。例如,对于整型数组来说,未初始化的元素默认值为 0。

下面是一个使用花括号初始化动态数组的示例:

int *numbers = new int[5]{1, 2, 3};

这行代码创建了一个包含 5 个整型变量的数组,并将前三个元素初始化为 1、2 和 3。后两个元素将被初始化为默认值 0。

使用圆括号进行初始化

使用圆括号进行初始化的格式如下:

type *array_name = new type[length](initial_value);

这里的 initial_value 是一个数值,该值将用于初始化数组的所有元素。例如,下面的代码将创建一个包含 5 个整型变量的数组,并将所有元素初始化为 0:

int *numbers = new int[5](0);
释放动态数组

在不需要使用动态数组时,我们应该将其释放,以避免内存泄漏。使用 delete[] 操作符可以释放动态数组:

delete[] array_name;

其中,array_name 是要释放的数组名称。

下面是一个释放动态数组的示例:

int *numbers = new int[5];
delete[] numbers;
总结

使用 new 可以创建动态数组,并且我们可以通过花括号 {} 和圆括号 () 进行数组初始化。使用 delete[] 可以释放动态数组。这样,我们就可以灵活地管理内存,并且避免内存泄漏的问题。