存取臨時字串的 c_str() 安全嗎?
在C 程式中,以下程式碼引起了關注:
有人認為,由random_string_generator 產生的臨時std::string 物件可能會在呼叫消費者之前被銷毀,從而可能導致c_str() 指標無效。然而,理解 временной переменных 生命週期的標準定義至關重要。
根據 C 標準,std::string::c_str() 傳回的指標在呼叫非常量函數之前保持有效。在 std::string 物件上,或它被破壞。在給定的程式碼中,臨時 std::string 物件將在完整表達式的末尾被破壞,其中包括對消費者的呼叫。這證實了程式碼的格式良好。
只要消費者不嘗試保留 c_str() 指標以供以後使用,就可以安全地假設臨時 std::string 物件不會被過早地被破壞了。自 C 98 以來,臨時變數的生命週期就得到了精確定義,確保所提供的程式碼可以在不同的編譯器上安全地執行。
以上是存取臨時'std::string”物件的'c_str()”是否安全?的詳細內容。更多資訊請關注PHP中文網其他相關文章!