[英]Last array printing 0 C++
我正在用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,有什么办法可以解决此问题?
您实际上并未提供太多信息,但这是我的猜测:
大小为N的数组始终包含N个元素,范围从0到N-1。 使用array [N]会访问超出数组范围的内存。 这可能是未使用的内存(最佳情况)或分配给其他内存的内存。 结果是问题。 不要这样做。
在您的代码中,您具有以下这一行:
54. cout<<"Sixth die: " << die[5] <<"\n";
这是无效的访问,因为die仅具有5个元素,因此0到4是有效索引。
这实际上是“未定义的行为”。 您的程序可能会核心转储/给出访问冲突,但这不是必须的。 它可以只输出一些随机数或零...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.