struct CandyBar
{
char name[30]; // имя производителя
float weight; // вес
int kaloria; // калории
};
int main()
{
CandyBar snack[3];
char str[30] = "Snickers";
snack[0].name = str; // error C2106: '=' : left operand must be l-value
}
Записи в C++
Код:
Как же можно присвоить snack[0].name какое-нибудь значение, если в тексте показано что к левой части нельзя присваивать значения?
И так пробовал :
Код:
snack[0].name = "Snickers"; // Тоже неправильно
Код:
strcpy(snack[0].name, "Snickers");
Цитата: Alexander92
Код:
strcpy(snack[0].name, "Snickers");
А так все работает. Спасибо. Что-то я сам не догадался до этого.
А почему при обычном присваивании выдает ошибку?
Почитайте любую книгу по C про указатели, массивы и C-строки. Это все объясняется в самом начале любой литературы.