c++ dynamic array of pointers
本问题已经有最佳答案,请猛点这里访问。
我试图理解如何在C++中创建一个动态数组指针。我知道
1 | int **arr = new int*[10]; |
根据C++标准(4.2数组到指针转换)
0例如,如果有这样的数组
1 | int a[] = { 1, 2, 3, 4, 5 }; |
那么在这个声明中
1 | int *p = a; |
用作初始值设定项的数组指示符被隐式转换为指向其第一个元素的指针。
所以一般来说,如果你有数组
2然后在表达式中,除了极少数例外,它被转换为指向类型
在本声明中
1 | int **arr = new int*[10]; |
初始值设定项是类型为
1 | typedef int * T; |
或
1 | using T = int *; |
所以你可以写
1 | T * arr = new T[10]; |
即指针
也就是说,new返回指向动态分配数组的第一个元素的指针。