首先,我想向大家保证,我问这个问题是出于好奇。我的意思是,不要告诉我如果我需要这个,那么我的设计就有问题,因为我在实际代码中不需要它。希望我说服了你 :) 现在问题来了:
对于大多数类型 T 我们可以写
T* p = new T;
现在如果 T 是一个数组类型呢?
int (*p)[3] = new ???; //pointer to array of 3 = new ???
我试过了:
typedef int arr[3];
arr* p = new arr;
但这不起作用。
是否有任何有效的语法,或者在 C++ 中是不可能的。如果不可能,那为什么?谢谢
编辑:我猜我不够清楚。我希望能够在这种情况下使用它:
void f(int(&)[3]);
int (*p)[3] = new ???;
f(*p);
最佳答案
要从 new
获取指向数组的指针,你必须动态分配一个二维数组:
int (*p)[3] = new int[1][3];
关于c++ - 是否可以在 C++ 中动态创建一个恒定大小的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5339950/