這是我編程所遇到的問題,做一下小結,以後便於查看,同時希望對大家有所幫助!
程序:
問題:
原因:
delete刪除的內存與實際分配的內存不相符.
說明:
StrInput通過new開闢了一個空間,後語句StrInput = StrInputTemp.c_str()修改了StrInput的地址,因此delete時釋放的是後面修改地址的那段內存,而非開始new創建內存空間.
解決方案1:
仍採用new創建StrInput,但是採用strcpy()進行修改StrInput的內容,全過程未修改StrInput地址.
注意:strcpy()的第一個參數不能是const,所以需要修改.
解決方案2:
初始化時,使指針StrInput指向StrInputTemp.c_str()的地址,不進行new動態分配內存即可.