2011-11-03 51 views
0

我有這樣的結構,C++:C++陣列結構的訪問

struct Vertex_2 { 
    GLdouble position[3]; 
}; 

我想訪問其內部數組是這樣的:

Vertex_2.position[0] = //something; 
Vertex_2.position[1] = //something; 
.... 
... 
.. 

當我編譯它,我得到這個:

error: expected unqualified-id before ‘.’ token 

這是爲什麼?

回答

2

您必須在使用其成員之前創建struct的實例。

Vertex_2 v; // v is an *instance* of the *struct* Vertex_2 
v.position[0] = //something; 
v.position[1] = //something; 
... 

Vertex_2想象的那樣的所有Vertex_2的應該是什麼樣子(但它不是,本身就是一個Vertex_2)的說明。然後你必須通過做Vertex_2 name;實際創建一個Vertex_2。在這個例子中,我們使用名稱v而不是name,但您可以根據需要命名實例。然後,您可以使用點(.)通過名稱訪問該實例的成員變量,就像您之前嘗試過的那樣。

+0

謝謝!它現在有效 –

1

你需要定義你的類的變量,你只定義了一個類型。

struct Vertex_2 { 
    GLdouble position[3]; 
} varVertex_2; // <-- now you have an instance of the struct 


varVertex_2.position[0] = //something; 
varVertex_2.position[1] = //something; 
0

因爲您試圖訪問結構類型而不是實際的結構。試試:

struct Vertex_2 { 
    GLdouble position[3]; 
} myVertex; 

myVertex.position[0] = //something; 
myVertex.position[1] = //something;