下午在重新整理一份代碼,中間遇到這么一個問題:要么出現內存訪問沖突,要么出現“Stack around the variable XX was corrupted”錯誤。
很是惱火!
先出現的是“Stack around the variable XX was corrupted”錯誤,網上查到的第一種解決方案是讓在“項目-屬性-配置屬性-C/C++-代碼生成中”,將基本運行時檢查設置成默認值,原來的值為“兩者(/RTC1,等同於 /RTCsu) (/RTC1)”。
修改后重新生成,錯誤是不見了,但是在另外一個按鈕事件里彈出一個“0x0000005:內存訪問沖突”,這個在修改配置前是沒有報錯的。無奈修改回兩者,然后內存不沖突了原先那個錯誤又出現了。
最后找到的解決方案參照“http://bbs.csdn.net/topics/340143691”這篇帖子,是程序中的一個字符數組大小少算了一個“\0”。把發生錯誤的那個數組空間+1就ok了。
后面想繼續補充下vs中基本運行時檢查(basic runtime check)的知識。