#c
#c
Вопрос:
У меня есть эта структура в c :
struct Vertex_2 {
GLdouble position[3];
};
Я пытаюсь получить доступ к массиву внутри него следующим образом:
Vertex_2.position[0] = //something;
Vertex_2.position[1] = //something;
....
...
..
когда я его компилирую, я получаю следующее:
error: expected unqualified-id before ‘.’ token
почему это так?
Ответ №1:
Вы должны создать экземпляр 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
(но само по себе это не a Vertex_2
). Затем вы должны фактически создать Vertex_2
, выполнив Vertex_2 name;
. В примере мы использовали имя v
вместо name
, но вы можете назвать экземпляр как угодно. Затем вы можете получить доступ к переменным-членам этого экземпляра через имя с точкой ( .
), как вы пытались сделать раньше.
Ответ №2:
Вам нужно определить переменную вашего класса, вы определили только тип.
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;
Ответ №3:
Поскольку вы пытаетесь получить доступ к типу struct, а не к фактической структуре. Попробуйте:
struct Vertex_2 {
GLdouble position[3];
} myVertex;
myVertex.position[0] = //something;
myVertex.position[1] = //something;