@WizardW

Почему не получается записать в поле структуры переменную типа string?

Itm* CrItm(int Id, std::string Inf)
{
	Itm *t = new Itm;
	t->next = t->prev = NULL;
	t->id = Id; 
	t.Info = Inf;  // здесь ошибка
	return t;
}

Сама структура Itm
struct Itm {
	int id;
	std::string Info[Max_ch];
	Itm *next, *prev;
};


В ошибке: "Выражение должно иметь тип класса".
  • Вопрос задан
  • 133 просмотра
Решения вопроса 1
vt4a2h
@vt4a2h Куратор тега C++
Senior software engineer (C++/Qt/boost)
Потому что поле Info представляет из себя массив строк, а не одну строку. Т.е. вы по факту пытаетесь записать значение переменной одного типа в переменную другого типа. Допустим такой код уже должен скомпилироваться:
t->Info[0] = Inf;
Это означает: присвоить первому элементу массива Info значение переменной Inf. Правда я не уверен этого ли вы хотите. Возможно вам нужно просто сделать переменную Info обычной строкой, а не массивом и тогда ваш код тоже будет работать.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы