最后一个数组打印0 C++

Pre*_*ity 0 c++ arrays kubuntu

我正在用C++制作一个骰子游戏,在我的程序中我有一些数组.

die[5] = { (rand()%6)+1, (rand()%6)+1, (rand()%6)+1, (rand()%6)+1, (rand()%6)+1 };
Run Code Online (Sandbox Code Playgroud)

然后我使用数组

cout<<"First die: "<< die[0] <<"\n"
Run Code Online (Sandbox Code Playgroud)

等等

但是,当我运行程序时,最后一个数组将始终打印0,有没有办法可以解决这个问题?

小智 6

你并没有真正提供太多信息,但这是我的猜测:

  • 你走得太远了.数组中的最后一个位置是die [4],很有可能你正在使用die [5],这意味着你正在访问你不应该访问的内存.在某些系统上,这将自动初始化为"0".

大小为N的数组总是包括0到N-1的N个元素.使用array [N]访问超出数组范围的内存.这可能是未使用的内存(最佳情况)或分配给其他内存的内存.结果是麻烦.不要这样做.