2011-11-03 80 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;