Я не ошибся словом, именно логика.
Создаются 2 массива:
Должно создаваться 4 значения. С объектами срабатывает, а с числами нет.
Код:
int* AllNumList;
int Cmin=0, Cmax=0;
void Game()
{
bool end = 0;
int numOfIterations = 0;
int maxNum = 1;
while (maxNum <= Cmax)
{
numOfIterations++;
maxNum = pow(2, numOfIterations);
}
numOfIterations--;
maxNum = pow(2, numOfIterations);
Card* card = new Card [numOfIterations +1];
AllNumList = new int [numOfIterations+1];
for (int i = 0; i <= numOfIterations;i++)
{
AllNumList[i] = pow(2, i);
card[i].AddGenNumber(pow(2, i));
}
}
Первая итерация цикла:
Последняя итерация:
Почему оно не работало останется загадкой навсегда.
Исправил таким образом:
int* AllNumList;
int Cmin=0, Cmax=0;
void Game()
{
bool end = 0;
int numOfIterations = 0;
int maxNum = 1;
while (maxNum <= Cmax)
{
numOfIterations++;
maxNum = pow(2, numOfIterations);
}
numOfIterations--;
maxNum = pow(2, numOfIterations);
Card* card = new Card [numOfIterations+1];
int* asd = new int[numOfIterations + 1];
for (int i = 0; i <= numOfIterations;i++)
{
asd[i] = pow(2,i);
card[i].AddGenNumber(pow(2, i));
}
AllNumList = asd;
}
Пойдем по порядку.
bool end = 0;
int numOfIterations = 0;
int maxNum = 1;
while (maxNum <= Cmax)
На этом этапе ваш maxNum равен 1, а Cmax равен нулю. Условие не выполняется, как и содержимое цикла.
numOfIterations--;
maxNum = pow(2, numOfIterations);
Здесь numOfIterations из 0 становится равен -1. В maxNum теперь 2 в степени -1.
Card* card = new Card [numOfIterations+1];
int* asd = new int[numOfIterations + 1];
Здесь выделяется память для 0 объектов типа Card и 0 объектов типа int. Это undefined behavior.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости