C++ 如何使用C++;
如何使用数组new初始化x的值: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)[
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];