2012-04-09 3 views
0

Im пытается обработать массив структур, но им ПОЛУЧАТЬ эту ошибку при доступе пользователей: «должны иметь класс/структуры/объединения»C++ не STRUCT признал

struct person 
{ int a; int b; int c; 

} 

person myArray[10]; 

int main() 
{ 
for(var i = 0; i < 10; i++) 
{ 
    //Assume that connection string already established 
    outdata<< myArray[i].a << myArray[i].b << myArray[i].c << endl;//Error occurs here when accessing the members within my array of structs 
} 
return 0; 
} 

Пожалуйста посоветуйте.

+0

Могу ли я спросить, что такое 'var'? в 'for (var i = 0; i <10; i ++)' – weima

ответ

9
struct person { int a; int b; int c; } ; 
             ^^^^ 

Вы пропустили ;.

+0

+1: Ничего себе, 8 очков за недостающую точку с запятой. –

3

Вы должны сделать

struct person 
{ int a; int b; int c; 

} ; 
    ^^^^ 

person myArray[10]; 

или

struct person 
{ int a; int b; int c; 

} myArray[10]; 

В первом случае определение нового типа «лицо» (заканчивающуюся semocolon), а затем объявляющего массив «туАггау» этого нового типа «человек».

Во втором случае вы комбинируете объявление типа и определение переменной, которое разрешено для C/C++.

0

первая коррекция:

struct person 
    { int a; int b; int c; 

    } myArray[10]; 

вторая коррекция:

for(var i = 0; i < 10; i++) 

var не suported в C++. Вместо этого вы можете использовать auto, если вы работаете в VS2010 или выше. Или вы должны будете использовать int