我正在用 C++ 制作一个骰子游戏,在我的程序中我有一些数组。
die[5] = { (rand()%6)+1, (rand()%6)+1, (rand()%6)+1, (rand()%6)+1, (rand()%6)+1 };
然后我使用数组
cout<<"First die: "<< die[0] <<"\n"
ETC
但是,当我运行程序时,最后一个数组总是会打印 0,有没有办法解决这个问题?
您并没有真正提供太多信息,但这是我的猜测:
大小为 N 的数组总是包含从 0 到 N-1 的 N 个元素。使用 array[N] 访问超出数组范围的内存。这可能是未使用的内存(最佳情况)或分配给其他东西的内存。结果是麻烦。不要这样做。
在您的代码中,您有这一行:
54. cout<<"Sixth die: " << die[5] <<"\n";
这是无效的访问,因为 die 只有 5 个元素,因此 0 到 4 是有效索引。
这实际上是“未定义的行为”。您的程序可能会进行核心转储/访问冲突,但并非必须如此。相反,它可以只输出一些随机数或零......