VS2010 基本運行時檢查 和“Stack around the variable XX was corrupted”之間的關系


下午在重新整理一份代碼,中間遇到這么一個問題:要么出現內存訪問沖突,要么出現“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)的知識。

1、http://msdn.microsoft.com/en-us/library/8wtf2dfz.aspx

2、http://blog.csdn.net/brighttown/article/details/4183238


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM