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; } Код 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; } Когда условия - истина возникает ошибка памяти, я вообще никак понять не могу. Вроде бы динамический массив правильно сдел.
Динамический массив создаешь неправильно. В твоем случае, string* names = new string; float* odds = new float; // Будет идентично этому: string *names; floast *odds; C string* names = new string; float* odds = new float; // Будет идентично этому: string *names; floast *odds; Разница в том, какую память ты использовал. Для создания динамического массива используй операторные скобки. string *names=new string[ размер массива]; float *odds=new loat[размер массива]; C string *names=new string[ размер массива]; float *odds=new loat[размер массива];