动态分配指针数组

时间:2020-06-27 17:56:02

标签: c++ pointers dynamic-memory-allocation

最后一行代码如何动态分配指针数组?

int size;

    cin >> size;

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

我最不清楚代码的“ int **”部分。有人可以分解吗?

谢谢!

4 个答案:

答案 0 :(得分:3)

int   a; // a is an int
int  *a; // a is a pointer to an int
int **a; // a is a pointer to a pointer to an int 

您可以将int*指向int的数组,如下所示:

int *a = new int[42];  // allocates memory for 42 ints

完全相同,您可以将int**指向int*的数组,如下所示:

int **a = new int* [42];  // allocates memory for 42 int*

请注意,此数组中的每个指针都需要分配其自己的内存,否则,您只有42个指针的数组,没有一个指向有效内存。

答案 1 :(得分:0)

它是一个双指针int变量。正如我从代码中看到的那样。它存储指针int ** p的地址

答案 2 :(得分:0)

这样想:

要分配数组,请使用 类型* _var =新类型[大小]

但是您希望您的类型是指向int的指针,因此: int * * arr = new(int *)[size]

答案 3 :(得分:0)

创建动态数组 语法是: data_type * name_of_array =新的data_type [大小] 您可以根据需要将size作为变量或值。

相关问题