📅  最后修改于: 2023-12-03 15:38:13.780000             🧑  作者: Mango
在 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[]
可以释放动态数组。这样,我们就可以灵活地管理内存,并且避免内存泄漏的问题。