【发布时间】:2014-09-24 23:21:47
【问题描述】:
我遇到了这个问题:
在下面的声明中,p 是一个指向 5 个 int 数组的指针 指针。
int *(*p)[5];
以下哪个语句可以用来分配内存 为了使 p 成为 3 个 5 个数组的数组的第一个维度 指向 int 类型的指针?
A. p = 新整数 [3][5]*;
B. p = new int (*)[3][5];
C. p = 新整数 [3]*[5];
D. p = 新整数 *[3][5];
E. p = new int (* [3] ) [5];
答案是什么?
我不确定我是否理解这个问题。通常我会创建一个指向 5 int 数组的指针,例如 int* p[5]; 我很好奇他们为什么这样做 int *(*p)[5];
这个问题还想要什么?是否要求对前 3 个 int 指针进行初始化(分配内存)?如果有人可以向我解释这一点,我将不胜感激
【问题讨论】:
-
F.
std::array<std::array<int, 5>, 3> -
G.
auto p = std::array<std::array<int*, 5>, 3>{{}};