網(wǎng)站業(yè)務(wù)費如何做記賬憑證優(yōu)化分析
https://en.cppreference.com/w/cpp/string/basic_string/c_str
https://sourceforge.net/p/cppcheck/wiki/ListOfChecks/
- common mistakes when using string::c_str()
string的這個成員是返回c類型的一個字符數(shù)組指針。但是這個指針所對應(yīng)的地址有賴于string對象的生命周期。所以如果返回一個函數(shù)內(nèi)的局部string對象的指針,就是危險的。如果是危險的有沒有靜態(tài)代碼檢查工具可用幫助來檢查這種書寫的問題。
這里需要注意的一個問題是在gcc的4.8版本是可用隱藏這個問題,但是到了8.5這個版本,就不再隱藏了。所以對生命周期比較長的c++工程來說,這是一個非常大的挑戰(zhàn)。因為原來這么錯誤使用也沒有問題,那得有多少處這種錯誤使用呢?
_CharT*_M_data() const _GLIBCXX_NOEXCEPT{ return _M_dataplus._M_p; }