[英]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.