📜  c++ 使用初始值动态分配 - C++ (1)

📅  最后修改于: 2023-12-03 14:59:48.690000             🧑  作者: Mango

C++ 使用初始值动态分配

在C++中,动态分配内存是一种必不可少的技术,但是当我们需要为新分配的内存设置初值时就需要使用到初始值动态分配。在本文中,我们将会介绍如何使用初始值动态分配,下面是示例代码:

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

在上面的代码中,我们创建了一个包含5个整数的数组,并使用大括号设置了初始值。这意味着,我们可以在创建数组时直接初始化数组元素,而不必使用循环或其他方法来进行初始化。

对于同样的目的,也可以使用以下方式:

int* arr = new int[5]();

在这种情况下,所有的数组元素都将被初始化为默认值0。更进一步的,如果你需要初始化结构体或类的数组,你可以使用以下方式:

struct Point {
    int x;
    int y;
};

Point* points = new Point[3]{{1,2}, {3,4}, {5,6}};

在这种情况下,我们创建了一个包含3个Point结构体的数组,并使用大括号来初始化结构体的成员变量。同样,也可以使用如下方式:

struct Point {
    int x;
    int y;
};

Point* points = new Point[3]();

这里,所有的结构体成员都将被初始化为默认值0。

最后,需要注意的事项是:初始值动态分配只能够在C++11标准以上版本进行使用。如果你的编译器版本不足C++11,那么你将无法使用本文介绍的方法。

希望本文能够对使用初始值动态分配有所启示。