簡體   English   中英

最后數組打印0 C ++

[英]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,有什么辦法可以解決此問題?

您實際上並未提供太多信息,但這是我的猜測:

  • 你走得太遠了。 數組中的最后一個點是die [4],很可能您正在使用die [5],這意味着您正在訪問不應該使用的內存。 在某些系統上,這將自動初始化為“ 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM