Загрузка...

Как пофиксить ошибку???

Тема в разделе C/C++ создана пользователем robot13673 18 мар 2021. 157 просмотров

  1. robot13673
    robot13673 Автор темы 18 мар 2021 No Hacker 31 9 авг 2018
    Код
    int  i = 1, procent;
    string* names = new string;
    float* odds = new float;
    float odd;
    string name;
    do
    {
    cout << "Введите названия ставки ";
    cin >> name;
    cout << endl;
    cout << "Введите коэффициент ";
    cin >> odd;
    cout << endl;
    procent = (1 / odd) * 100;
    int a = 1+ rand() % 100;
    if (procent > a )
    {
    odds[i - 1] = odd;
    names[i - 1] = name;
    i++;
    cout << "Ставка проходит!" << endl;
    }

    Когда условия - истина возникает ошибка памяти, я вообще никак понять не могу. Вроде бы динамический массив правильно сдел.
     
    18 мар 2021 Изменено
  2. lastnova
    lastnova 18 мар 2021 15 273 9 сен 2019
    я не силен в географии
     
  3. гаечка
    гаечка 18 мар 2021 27 253 17 авг 2019
    ты хоть бы через "КОД" кинул это
     
    1. robot13673 Автор темы
    2. robot13673 Автор темы
  4. z1k
    z1k 18 мар 2021 death row 1195 18 мар 2019
    юзай вектор и все, не будет проблем с памятью
     
    1. robot13673 Автор темы
      z1k, только 3 месяца изучаю С++, ещё его не выучил
  5. lavr1kcorejz
    lavr1kcorejz 18 мар 2021 14 20 окт 2019
    Динамический массив создаешь неправильно.
    В твоем случае,
    C
    string* names = new string;
    float* odds = new float;
    // Будет идентично этому:
    string *names;
    floast *odds;
    Разница в том, какую память ты использовал.
    Для создания динамического массива используй операторные скобки.
    C
    string *names=new string[ размер массива];
    float *odds=new loat[размер массива];
     
    1. robot13673 Автор темы
Top
Загрузка...