指向运行时固定大小数组的指针是合法的吗?

时间:2017-05-12 10:15:00

标签: c++ arrays pointers multidimensional-array

我可以吗

int (*myarray)[n];

我想要这样做的原因是因为我想要创建的2D数组的内部维度是未知的(外部是)。我因为重新分配而避免使用矢量。

2 个答案:

答案 0 :(得分:4)

不,不是。

使用std::vector,甚至是std::array

  

我因为重新分配而避免使用矢量。

使用vector::reserve避免代价高昂的重新安置。

答案 1 :(得分:1)

没有。如果您绑定到C样式数组,则可以使用:

int n; // array size;
int *myarray = new int[n];

修改

正如Rudianto Presetya(对不起,我对评论很新,不知道如何标记)说,如果你可以使用C ++ 11或更高版本,请使用unique_ptr而不是new [] < / p>