很明显这样做是不行的,因为它被解释为分配一个
令人惊讶的是,这种方法也不起作用:
int
数组:int (*ptr)[10] = new int[10];
令人惊讶的是,这种方法也不起作用:
typedef int arr10[10];
arr10 *ptr = new arr10;
这个是有效的:
ptr = new int[1][10];
但它使用new[]
而不是new
。
出于我的好奇心,是否可能使用new
来分配类型为int[10]
的单个对象,而不是使用new[]
来分配10个对象的数组或一个int[10]
对象的数组?
new int[10];
有什么问题吗?请问还需要什么? - Karoly Horvathnew
而不是new[]
的原因是什么? - 101010std::vector
或std::array
看起来不太合适。 - Christian Hacklstd::vector
或std::array
永远不会错,但我明白你的意思。;-) - DevSolarnew
分配数组的 C++ 方法,即将其放在一个struct
中,不是他关于如何实现它的问题的答案。这意味着此问题存在隐藏的限制。无法知道对 OP 而言什么才是可接受的。 - Cheers and hth. - Alf