[英]Segmentation fault when changing `std::string` in by pointer
我有一個std::string*
作為我的類的成員,但是當我嘗試將其值設置為類構造函數中的任何值時,出現segmentation fault (core dumped)
相關代碼部分:
// class declaration:
//...
std::string* _sensorString;
//...
// on class constructor
//...
std::cout << "test "<< std::endl;
*_sensorString="s";
std::cout << *_sensorString<< std::endl;
//...
程序的輸出:
test
Segmentation fault (core dumped)
是的,很明顯。 std::string*
是一個指針,當指針未初始化時給指針賦值會導致分段錯誤。 標准模板庫可以幫助您處理對象,因此您不需要指針。 只需將您的類型聲明為
std::string _sensorString;
然后你可以用它作為
_sensorString = "s";
你沒有為對象分配內存,
std::string* _sensorString;
你應該寫
_sensorString = new std::string;
寫之前
*_sensorString="s";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.