Инициализация массива в структуре или классе

Я только учился о структурах и классах. Я создал образец структуры для ознакомления с ним и попытался инициализировать массив в нем. когда я скомпилировал программу, это дало мне ошибку

error: expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘__attribute__’ before ‘=’ token
char arr[5] = {2,3,8,67,87};

struct abc{
char a;
char b;
char c;

char arr[5] = {2,3,8,67,87};
};  

struct abc xyz[5]; 

Разрешается ли инициализация массива при объявлении структуры, а также класса?

3 ответа

Решение

Я думаю, в C вы можете сделать так:

struct abc{
char a;
char b;
char c;

char arr[5];
};  

struct abc test= { 5, 2, 3, { 'a', 'b', 'c', 'd', 'e' } };

В C вы не можете инициализировать элементы структуры в определении структуры. Вы должны сделать это, когда объявляете переменную этой структуры. В C++ вы можете сделать это как часть конструктора.

Завершенная инициализация массива не допускается в структуре, но вы можете просто инициализировать имя и тип массива без содержимого. В с ++

struct student{
int age;
string name;
int scoreOf4subject[4];   
}; 

Когда вам нужно установить значение 4 субъекта в массиве, это будет выглядеть так:

student keny;   
keny.scoreOf4subject={90,91,94,93};
Другие вопросы по тегам