Run-Time Check Failure #2 - Stack around the variable 'buf' was corrupted

Run-Time Check Failure #2 - Stack around the variable 'buf' was corrupted

 

昨天這個問題纏繞了我一個下午。也許是這幾天累了,一直沒找到問題根本原因,不過趴下睡一覺,就解決了。

這句話的意思是:運行時檢測失敗#2-在buf附近的棧遭到破壞。

其實主要的原因是對buf越界訪問了。解決辦法是擴大buf棧的空間,就解決了。

我在網上也查過一些類似的文章:

說這是vs的新功能,其實這也不是什麼新功能,只是我們一直不注意而已。在vs的項目屬性-配置屬性-c/c++-代碼生成選項中有一個 基本運行時檢測(/RTC1, equiv. to /RTCsu)。如果該項選默認的話,在debug下編譯運行沒有什麼問題,但在Release下編譯運行還是會出錯的。所以最好的辦法不是把該項給去掉他,給而是給buf棧分配足夠的空間來存放數據,並確保你的數據沒有溢出或確保你沒有越界訪問。

這個也可以看下:

http://ankorzhang.blog.163.com/blog/static/118377343200910261185576/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章