for循環 數組下標越界導致死循環

如圖所示函數,最終for語句會陷入死循環,無法結束。 原因在於:堆棧幀中 a[0]~ a[4] 之後是 i  而 訪問a[5]時,其地址也是 i所在的地址 因此當你給a[5]賦值爲0的時候,也就給 i 賦值爲  0 了。 這個問題的原因就是C在編譯的時候,不會對數組下標溢出做檢查。 因此以後用類似這樣的語句時,一定要注意控制數組下標,不要溢出了。 -------------------------
相關文章
相關標籤/搜索