Top.Mail.Ru
Ответы

Си, структуры и инициализация элементов массив символов (строка)

Преподаватель сказал, что при присутствии в структуре элемента строка (пример)
struct games
{
char name[50];
char genre[10][50];
};
нельзя инициализировать как game.name = "stroka", а нужно использовать функцию strcpy. Но компилятор выдаёт ошибку о том, что переменная game не инициализированна (Run-Time Check Failure #3 - The variable is being used without being initialized.)
Вот часть кода, что нужно сделать, чтобы не было этой ошибки? Как присвоить строке значение?
int _tmain(int argc, _TCHAR* argv[])
{
struct games *game[10];
{
strcpy(game[0]->name, "Life is strange");
strcpy(game[0]->genre[0], "Action");
}

По дате
По рейтингу
Аватар пользователя
kapitan_guglОракул
9лет

Ну так правильно - у тебя массив указателей, где ты им присваиваешь значения?

Аватар пользователя
neizvestno_21232Ученик
9лет

Я не понимаю, что им надо присвоить и как, если через = нельзя

Аватар пользователя
doktor_akasaМудрец
9лет

struct Game
{
char name[50];
Game(char * name) { strcpy_s(this->name, name); }
};

int main()
{
Game games[] = { "Call Of Honor", "Pop Band", "Angry Bards" };

for each (Game game in games) cout << game.name << endl;
}

Аватар пользователя
polzovatel_20Мудрец
9лет

букву s дописать после слова game.



Видео по теме