Debug Assertion Failed! _BLOCK_TYPE_IS_VALID(pHead-nBlockUse)

    這是我編程所遇到的問題,做一下小結,以後便於查看,同時希望對大家有所幫助!

程序:



問題:



原因:

       delete刪除的內存與實際分配的內存不相符.


說明:

    StrInput通過new開闢了一個空間,後語句StrInput = StrInputTemp.c_str()修改了StrInput的地址,因此delete時釋放的是後面修改地址的那段內存,而非開始new創建內存空間.


解決方案1:


    仍採用new創建StrInput,但是採用strcpy()進行修改StrInput的內容,全過程未修改StrInput地址.

    注意:strcpy()的第一個參數不能是const,所以需要修改.


解決方案2:


    初始化時,使指針StrInput指向StrInputTemp.c_str()的地址,不進行new動態分配內存即可.

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