2014-03-13 152 views
0

爲矢量分配數組時,爲什麼我的大小發生變化?C++爲矢量分配矢量

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 

我知道我可以遍歷並逐個(而不是分配的一行),但我只是想知道爲什麼會這樣。

+8

的大小'Vertices'是一個指針。您正在查看平臺上指針的大小。那是'4'。 – juanchopanza

+2

爲了完全清楚,指針(以'*'結尾的任何類型)不會存儲關於它們指向的大小或維度信息。 –

回答

6

vertices.size()給出的頂點陣列(89473)中的元素的數量,同時sizeof(Vertices)計算一個指針,這恰好是4.