如何防止警告:ISO C ++禁止变长数组'节点'[-Wvla]

时间:2013-03-29 21:54:32

标签: c++ arrays

我对这两行代码发出了警告:

 const int entityNumber = materialNames.size();
 SceneNode* nodes[entityNumber];

我认为将entityNumber声明为const会解决这个问题。 (它在以前的版本中,当实体编号只是我自己设置的值时)但是它看起来并不适用。你可以告诉我,我对c ++很新,很抱歉,如果这是一个愚蠢的问题。

2 个答案:

答案 0 :(得分:2)

你应该制作一个std::vector,这是一个动态长度数组,但是对常见操作有很多支持:

// This reserves space for all the nodes you'll store
std::vector<SceneNode> nodes(materialNames.size());

答案 1 :(得分:1)

使用std::vector代替旧版阵列。