問題描述:
0x0FB91BC0 (ucrtbased.dll)處(位於 five.exe 中)引發的異常: 0xC0000005: 讀取位置 0x00000000 時發生訪問衝突。
emmm,這個問題呢,網上有很多解答,就是指針和數組越界的問題;
今天有個同學問我一個問題,就是碰見了這一串的0x00000000,我也是第一次碰見這玩意兒,上網搜了搜,原來是指針和數組越界了;
- 道理是明白了,可是這幾百來行的代碼實在是看的人眼花繚亂,我不斷的調啊調,終於將問題鎖定在了
strlen
這裏:
- 接着找到這個showText一看,得是個指針;
- 眼瞅着是沒啥問題,可咋就一直報錯呢?結果是她在主函數裏調用了一個函數,又通過這個函數調用另一個函數,通過最後一函數使用了這個
strlen(showText)
,這東跑西跑,突然出現錯誤就傻了😢; - 到中間一看,showText還是原來那個showText,一直到調用一點沒變,最開始也沒有賦值,就是個
char *showText;
,那可不就妥妥的得出錯
在定義showText時賦值,問題就解決了
定義指針時記得要賦值,路邊的野花雖然香,但是不要隨便採啊
結
我偶爾也這麼定義指針,今天一看,這錯誤不大,但確實讓人腦闊痛
所以在定義指針的時候,千萬不要偷懶啊,不然到時候成百上千行代碼,擱哪兒找這錯誤啊