C語言中陣列越界導致死迴圈的測試

2021-06-18 03:34:29 字數 633 閱讀 7112

#include //如何把這段**變成死迴圈,就像《c語言缺陷和陷阱》裡描述的那樣

//經過測試發現,變數i的位址和a[crazynum]的位址一樣,當執行

//a[crazynum] = 0;相當於i=0;所以死迴圈跑起來啦。

//測試環境:win7(32) dev-c++ 4.9.9.2

//《c語言缺陷和陷阱》中的場景是編譯器按照記憶體位址遞減的方式

//來給變數分配記憶體,那種編譯器crazynum=10就會死迴圈

#define crazynum 15

int main()

//列印i的位址,a[10]的位址

printf("&i = %x\n", &i);

printf("&a[%d] = %x\n", crazynum, &a[crazynum]);

return 0;

}

void test_cycle()

//列印i的位址,a[10]的位址

printf("&i = %x\n", &i);

printf("&a[%d] = %x\n", crazynum, &a[crazynum]);

}

C C 分析陣列越界訪問導致死迴圈

閱讀下面 並分析導致其結果的原因 以下分析基於vs環境的除錯 include include intmain 擁有10個元素的整型陣列 for i 0 i 12 i 迴圈13次,越界訪問 system pause return0 分析 整型陣列arr有10個元素,for迴圈13次,導致陣列越界訪問。...

Linux 棧中陣列訪問越界導致死迴圈現象

最近在學習極客時間課程過程中碰到個挺有意思的關於陣列和linux 棧中增長方向的問題,特來與大家分享下。話不多說,先上 int main int argc,char ar for i 3 i return 0 很簡單。當使用gcc 搭配上 fno stack protector 禁用堆疊保護 選項進...

C語言中陣列越界訪問造成死迴圈現象

本篇文章純屬娛樂,沒太多技術性的東西。只是我覺得還比較有意思,所以記一下!大俠請繞道!include int main int argc,char argv printf program is end n return 0 很顯然,在本段 中,出現了乙個越界操作的問題。不過幸運的是,編譯還是通得過的...