我正在用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,有没有办法解决这个问题?
答案 0 :(得分:6)
你并没有真正提供太多信息,但这是我的猜测:
大小为N的数组总是包含0到N-1的N个元素。使用array [N]访问超出数组范围的内存。这可能是未使用的内存(最佳情况)或分配给其他内存的内存。结果是麻烦。不要这样做。
答案 1 :(得分:0)
在你的代码中你有这一行:
54. cout<<"Sixth die: " << die[5] <<"\n";
这是一个无效访问,因为die只有5个元素,因此0到4是有效索引。
这实际上是“未定义的行为”。您的程序可能会核心转储/提供访问冲突,但它不必。它只需输出一些随机数或零......