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/