最后一行代码如何动态分配指针数组?
int size;
cin >> size;
int** arr = new int* [size];
我最不清楚代码的“ int **”部分。有人可以分解吗?
谢谢!
答案 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作为变量或值。