繁体   English   中英

动态分配指针数组

[英]Dynamically allocating an array of pointers

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

int size;

    cin >> size;

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

我对代码的“int**”部分最不清楚。 有人可以打破这个吗?

谢谢!

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*

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

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

可以这样想:

要分配数组,请使用类型 *_var = new type[size]

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM