C ++将向量分配给数组

时间:2014-03-13 20:30:08

标签: c++ arrays syntax stdvector

为数组指定向量时,为什么我的大小会发生变化?

cout << endl << vertices.size() << endl;  //outputs correct number-> 89473
GLfloat* Vertices = &vertices[0];
GLfloat* Colors = &colors[0];
cout << endl << sizeof(Vertices) << endl; //outputs incorrect number-> 4

我知道我可以循环并单独分配(而不是分配一行),但我只是想知道为什么会发生这种情况。

1 个答案:

答案 0 :(得分:6)

vertices.size()给出顶点数组中的元素数(89473),而sizeof(Vertices)计算指针的大小,恰好是4。