C ++运行时错误?

时间:2010-12-06 05:27:37

标签: c++

Point V[rows];

这是否允许在C ++中使用? rows是一个变量,其值在运行时给出,Point是我的类。

2 个答案:

答案 0 :(得分:4)

在C ++中,可比的习语是:

std::vector<Point> V(rows);

它不是100%相同,因为它仍然调用new Point[](c99可以使用堆栈),但它仍然为您提供向量而不执行多个alloc。

答案 1 :(得分:0)

仅在C99中 - 这是一个名为“可变长度数组”的新功能。通常,没有。

我强烈建议不要使用此功能。如果必须这样做,请使用alloca,或正确分配它们,即Point *V = new Point V[rows];

顺便说一句:很多人也不鼓励Alloca。 See here