C++ 如何使用C++;

C++ 如何使用C++;,c++,C++,如何使用数组new初始化x的值: int (*x)[5] = ? new int[5]不起作用,因为它的类型为int* 您是否必须按如下方式使用C样式转换 int (*x)[5] = (int( *)[5])(new int[5]); C++中的固定大小数组将是.< /P> 而且,从指向数组int(*x)[5]的指针猜测可能是 std::array<int, 5> x; 这很有效 typedef int int5[5]; int main() { int (*x)[

如何使用数组new初始化x的值:

int (*x)[5] = ?
new int[5]
不起作用,因为它的类型为
int*

您是否必须按如下方式使用C样式转换

int (*x)[5] = (int( *)[5])(new int[5]);

C++中的固定大小数组将是.< /P> 而且,从指向数组

int(*x)[5]
的指针猜测可能是

std::array<int, 5> x;
这很有效

typedef int int5[5];

int main()
{
    int (*x)[5] = new int5[1];
    return 0;
}
也许有一种不用typedef的方法可以做到这一点,但我没有做太多的调查

更新

有点反直觉,这也是正确的

int (*x)[5] = new int[1][5];

不,你不应该使用强制转换,强制转换很少是正确的解决方案,特别是对于初学者。

由于项目的某些限制,你是否使用数组而不是std:vector?你的意思是如何动态创建指针数组?你理解
int(*x)[5]
声明指向5的数组的指针
int
?它需要一个有效的5-Int数组的地址,或者可以作为指向多个5-Int数组的指针。很有趣,它可能是重复的
std::array
已经有十年了,这是我第一次看到它被分配了
new
:)既然你提到了它,我也没有。
typedef int int5[5];

int main()
{
    int (*x)[5] = new int5[1];
    return 0;
}
int (*x)[5] = new int[1][5];