Вызвано исключение по адресу 0x0FD33DAF

пишу курсовую,хочу внедрить функцию ввода значений массива класса пользователем с клавиатуры. При запуске программы в геттерах класса paints возникает исключения нарушения прав доступа при записи. Также заметил недавно,что переменная value присваивает не те значения, что вводятся с клавиатуры, а совсем другие,такие как ¤ , при вводе слова "да".

#include <iostream>
#include <string>
using namespace std;
int state, state_1;
class paints
{
protected:
    string aname;
    string pname;
    string genre;
    string bcreat;
public:
    virtual void print()
    {
        cout << "Название картины: " << pname << endl << "Художник: " << aname << endl << "Жанр: " << genre << endl << "Год написания: " << bcreat << endl << "__________________________________________________________" << endl;
    }
    paints()
    {
        aname = "Нет данных";
        pname = "Нет данных";
        genre = "Нет данных";
        bcreat = "Нет данных";
    }
    paints(string value_pname, string value_aname, string value_genre, string value_bcreat)
    {
        this->aname = value_aname;
        this->pname = value_pname;
        this->genre = value_genre;
        this->bcreat = value_bcreat;
    }
    paints()
    {

    }
    void set_pname(string value_pname)
    {
        pname = value_pname;
    }
    void set_aname(string value_aname)
    {
        aname = value_aname;
    }
    void set_genre(string value_genre)
    {
        genre = value_genre;
    }
    void set_bcreat(string value_bcreat)
    {
        bcreat = value_bcreat;
    }
};
void menu()
{
    cout << "1. Показать всю информацию о художниках." << endl
        << "2. Показать всю информацию о картинах." << endl 
        <<"3. Показать всю информацию о музеях и выставках." << endl
        << "4. Показать всю информацию о приближающихся сделках." << endl
        << "5. Показать вашу коллекцию." << endl
        << "6. внести правки в баланс счета." << endl
        << "" << endl
        << "" << endl
        << "" << endl
        << "" << endl;
    cin >> state;
}
void menu_2()
{
    cout << "1.Ввести информацию о картинах" << endl
        << "2.Ввести информацио о художниках" << endl
        << "3.Ввести информацио о ближайших аукционах" << endl;
    cin >> state_1;
}
int main()
{

    setlocale(LC_ALL, "ru");
int state_2, size = 0;

    paints* paint = new paints[size];
menu();
    while (state != 0)
    {
        switch (state)
        {
        case 1:
            system("cls");
            menu_2();
            while (state_1 != 0)
            {
                int i = 0;
                string value;
                switch (state_1)
                {
                case 1:
                    system("cls");
                    do
                    {
                        size++;
                        cout << "Введите художника картины: ";
                        cin >> value;
                        paint[i].set_aname(value);
                        cout << endl << "Введите название картины: ";
                        cin >> value;
                        paint[i].set_pname(value);
                        cout << endl << "Введите жанр картины: ";
                        cin >> value;
                        paint[i].set_genre(value);
                        cout << endl << "Введите год написания картины: ";
                        cin >> value;
                        paint[i].set_bcreat(value);
                        cin >> state_2;
                        i++;
                    } while (state_2 != 0);


                default:
                    break;
                }
            }
default:
            break;
        }
    }
    return 0;
}

Ответы (0 шт):