Я делаю игру в кости на C ++, и в моей программе есть несколько массивов.
die[5] = { (rand()%6)+1, (rand()%6)+1, (rand()%6)+1, (rand()%6)+1, (rand()%6)+1 };
И тогда я использую массивы с
cout<<"First die: "<< die[0] <<"\n"
так далее
Но когда я запускаю программу, последний массив будет всегда напечатайте 0, есть ли способ, как я могу это исправить?
В вашем коде у вас есть эта строка:
54. cout<<"Sixth die: " << die[5] <<"\n";
который является недопустимым доступом, поскольку die имеет только 5 элементов, поэтому от 0 до 4 являются допустимыми индексами.
На самом деле это «неопределенное поведение». Ваша программа может выполнить дамп / нарушение прав доступа, но это не обязательно. Вместо этого он может просто вывести случайное число или ноль …
Вы не очень много информации даете, но вот мое предположение:
Массивы размера N всегда содержат N элементов в диапазоне от 0 до N-1. Использование массива [N] обращается к памяти за диапазон массива. Это может быть неиспользованная память (в лучшем случае) или память, выделенная для чего-то другого. Результат НЕИСПРАВНЫЙ. Не делайте этого.