大佬們,為什么我定義了陣列的長度為10,但是我運行后輸入了超出長度的字串,它依然可以儲存并列印出來呢?

uj5u.com熱心網友回復:
用for陳述句來吧,可能越界了都給你打出來了uj5u.com熱心網友回復:
其實電腦開機后物理記憶體的每個位元組中都有值且都是可讀寫的,從來不會因為所謂的new、delete或malloc、free而被創建、銷毀。區別僅在于作業系統記憶體管理模塊在你讀寫時是否能發現并是否采取相應動作而已。作業系統管理記憶體的粒度不是位元組而是頁,一頁通常為4KB。uj5u.com熱心網友回復:
陣列越界操作是未定義行為,未定義行為是可能沒問題。不建議操作越界的資料。uj5u.com熱心網友回復:
我一般這樣形容這種做法:相當于你偷了一次東西沒有被抓到。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/234534.html
標籤:C語言
下一篇:c++多載<<問題
