为什么这段代码不能用于在c ++中制作2D数组指针?编译器抱怨第二行不是可修改的l值。
int* g[2][2];
g[0] = new (int*)[2];
答案 0 :(得分:5)
g[0]
的类型是int* [2]
,即它是一个数组。您无法分配给数组。
目前尚不清楚您要实现的目标,因此我无法提供解决方案。如果你澄清你的问题,我可能会做得更好。
答案 1 :(得分:3)
第一行是创建由int
组成的2个指针数组所需的全部内容。
您无法为g[0]
分配新值的原因是因为g[0]
本身是一个数组,并且您无法为数组分配新值,只能为其元素分配。