【发布时间】:2023-04-09 10:38:01
【问题描述】:
首先,我想向大家保证,我问这个问题是出于好奇。我的意思是,不要告诉我如果我需要这个,那么我的设计就有问题,因为我在实际代码中不需要它。希望我说服了你 :) 现在问题来了:
对于大多数类型 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);
【问题讨论】:
-
如果我理解正确,您想知道 C++ 是否有办法“推断”数组的大小,而无需在分配中明确指定它?
-
标签: c++ arrays new-operator