no match for 'operator=' (operand types are 'CandyBar' and '<brace-enclosed initializer list>')

Рейтинг: 0Ответов: 0Опубликовано: 26.05.2023

В ходе изучения языка по книге, при решении очередной задачи, я наткнулся на эту ошибку, понятия не имею, что она означает и как ее исправить... Главное дело, этот код работает в онлайн компиляторе без проблем, а в VS Code возникает ошибка. Подскажите пожалуйста, как ее решить и что делать, чтобы с ней больше не сталкиваться?

#include <iostream>

using namespace std;

struct CandyBar {
    char name[30];
    float weight;
    int calories;
};

int main() {
    CandyBar* snack = new CandyBar[3];
    
    snack[0] = {"Mocha Monch", 2.3, 350};
    snack[1] = {"Uran", 1.2, 30000000};
    snack[2] = {"Barbaris", 1.3, 230};
    
    cout << "Name[0]: " << snack[0].name << " Weight[0]: " << snack[0].weight << " Calories[0]: " << snack[0].calories << endl;
    cout << "Name[1]: " << snack[1].name << " Weight[1]: " << snack[1].weight << " Calories[1]: " << snack[1].calories << endl;
    cout << "Name[2]: " << snack[2].name << " Weight[2]: " << snack[2].weight << " Calories[2]: " << snack[2].calories << endl;

    delete [] snack;

    return 0;
}

Ответы

Ответов пока нет.