2d指针数组c ++

时间:2012-04-19 00:16:05

标签: c++ pointers

为什么这段代码不能用于在c ++中制作2D数组指针?编译器抱怨第二行不是可修改的l值。

      int* g[2][2];
  g[0] = new (int*)[2];

2 个答案:

答案 0 :(得分:5)

g[0]的类型是int* [2],即它是一个数组。您无法分配给数组。

目前尚不清楚您要实现的目标,因此我无法提供解决方案。如果你澄清你的问题,我可能会做得更好。

答案 1 :(得分:3)

第一行是创建由int组成的2个指针数组所需的全部内容。

您无法为g[0]分配新值的原因是因为g[0]本身是一个数组,并且您无法为数组分配新值,只能为其元素分配。