含string的結構體報錯:字符串中的字符無效

含有string的結構體使用memset()函數報錯如下:
字符串中的字符無效

分析:
string不能使用memset或者memcpy這些低級函數。如果正好工作,那是你比較幸運。c++規定,除了trivially copyable類型可以使用memcpy函數外,其他類型是未定義行爲。你new完後string的構造函數已經調用完畢,你再memset就破壞了他的內部數據不變式。

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