原文連結:https://blog.csdn.net/qq_43746320/article/details/104603363
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL3lkeNJTU65keRpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL5cTOxIjN1MjMxAzMwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
最近寫項目的時候碰到如下圖所示的報錯,困擾了我好久,終于在網上找到了解決方案,覺得需要記錄一下,具體如下:
說明:編譯器為VS2013
這個報錯字面意思是定義的變量xxx附近的記憶體被破壞了
一般情況下,第一反應就是堆棧溢出、記憶體通路越界 …沒錯,這是第一個解決方案
【解決方案】如果提示中的變量是指針類型變量,則大機率的就是數組通路越界,需要反複檢查數組下标通路的合法性
如果提示中的變量并不是指針,而是普通局部變量,在檢查代碼邏輯無誤後,此時問題的解決方案如下(具體出錯原因不太清楚,我認為是VS編譯器的優化問題)
【解決方案】:
方法一:可以将該局部變量設定為全局變量即可
方法二:可以在“ 項目 ---- 屬性 ---- 配置屬性 ---- C/C++ ---- 代碼生成 ---- 基本運作時檢查:”設定為預設值,點選應用,确定後即可
粗淺了解,不足之處,請指正!