0
const char* s = std::string("text").c_str();
std::cout << s << std::endl; //This will print nothing because the data
//isn't available any longer
std::string::c_str()
返回指向其存儲數據的指針。 事實上,std::string("text")
只是我可以使用它的時間(例如,當我使用它初始化另一個實例時),因此最後調用析構函數,刪除數據使得s什麼也不指向。是否有可能用像string.c_str()這樣的右值初始化const char *?
現在我的問題是,如果有一種方法可以將數據移動到某處,而不會被析構函數刪除,所以const char*
可以指向它。或者,如果他們使用像共享智能指針那樣的知道是否有其他東西指向std::string
的數據,這樣它就不會被刪除。
將數據複製到某處並指出這不是我正在尋找的。