Почему если в полях структуры указать тип float программа не работает

#include <iostream>
#include <iomanip>
using namespace std;

void star()
{
for (int i=0;i<83;i++)
    cout<<"*";
cout<<endl;
}

struct Shoe
{
char name[30];
char gender;
float size;
char color[20];
int kol;    
};

int main()
{
setlocale(LC_ALL,"Russian");
int j=0,l;
Shoe *M=new Shoe[j];

do{
    cin.sync();
    cout<<"Введите название модели:"<<endl;
    cin.get(M[j].name,30);

    cout<<"Название модели, начинается с буквы М для мужкой обуви, W для женской"<<endl;
    cin>>M[j].gender;
    while (M[j].gender!='W' && M[j].gender!='M' && M[j].gender!='w' && M[j].gender!='m')
        {
        cout<<"Введите заново название модели:"<<endl;
        cin>>M[j].gender;
        }
    cin.sync();

    cout<<"Введите размер"<<endl;
    cin>>M[j].size;
    while (M[j].size<=20 or M[j].size>=60)
        {
        cout<<"Введите размер заново:"<<endl;
        cin>>M[j].size;
        }
    cin.sync();

    cout<<"Введите цвет"<<endl;
    cin.get(M[j].color,20);

    cout<<"Введите количество пар"<<endl;
    cin>>M[j].kol;
    while(M[j].kol<=0)
        {
        cout<<"Введите количество пар заново:"<<endl;
        cin>>M[j].kol;
        }

    cout<<"Вводить еще? Если да - то 1,иначе - 0"<<endl;
    cin>>l;
    while(l!=0 && l!=1)
        {
        cout<<"Введите заново:"<<endl;
        cin>>l; 
        }   
    if (l==1)
        j++;    

}while(l==1);

star();
cout<<"*         Название модели      * Мужская/женская * Размер *   Цвет  *  Количество *"<<endl;
star();

for (int i=0;i<=j;i++)
    {
    cout<<"*"<<setw(29)<<M[i].name<<" * "<<setw(15)<<M[i].gender<<" * "<<setw(5)<<M[i].size<<" " <<setw(7)<<M[i].color<<" * "<<setw(10)<<M[i].kol<<"  *"<<endl;
    star();
    }
}

введите сюда описание изображения


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

Автор решения: AlexGlebe
int j,l;
Shoe *M=new Shoe[j];

Вы создаёте массив неизвестного размера. И пользуетесь не той областью памяти.

cin.get(M[j].name,30);

Задайте сначала размер массива и заносить значения надо с индекса нулевого сначала.

→ Ссылка