无法初始化数组

时间:2015-09-29 20:53:39

标签: c++ compiler-errors

好吧,当涉及到C ++(从VB转移过来)时,我是一个很新的东西,我似乎无法解决如何填充数组的问题:

array[0] = 1
array[1] = 2 

等等

正如可以预料的那样,我试过这个:

float posVector[3]; //Declared outside of int main() as needs to be global
posVector = {0.0f,0.0f,0.0f}; //Inside int main()

导致显示此错误:

extended initializer lists only available with -std=c++0x or -std=gnu++0x [enabled by default]

到目前为止,我无法在网上找到任何帮助。因此,任何有关修复此问题的建议都将不胜感激!

4 个答案:

答案 0 :(得分:5)

声明数组后,无法使用初始化列表初始化它。你可以选择

float posVector[] = {0.0f,0.0f,0.0f};

甚至更好地使用std::vector

#include <vector>

std::vector<float> posVector = {0.0f,0.0f,0.0f};

答案 1 :(得分:1)

可以这样做:

l

答案 2 :(得分:0)

我认为最短的方式:float posVector[] { 0.0f,0.0f,0.0f };

答案 3 :(得分:0)

据我所知,问题不是关于INITIALIZING数组,而是关于在数组已经创建之后分配它。答案是'没办法&#39;。初始化后无法分配数组。但是,一段时间内固定大小的数组可能会更充分地呈现为结构,而情况确实如此!坐标更好地呈现为结构!

没有评论全局变量的必要性(很可能,不需要),这是让它工作的方法:

struct Coordinate {
    float x;
    float y;
    float z;
};

Coordinate coord;

void foo() {
    coord = {1, 2, 3};
}