Инициализация массива в структуре или классе
Я только учился о структурах и классах. Я создал образец структуры для ознакомления с ним и попытался инициализировать массив в нем. когда я скомпилировал программу, это дало мне ошибку
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};