此代碼是否安全?只是因爲它沒有錯誤地運行,我擔心我正在爲自己設置一個陷阱。將ptr傳遞給返回的std :: string
void targetMethod(const char *arg);
std::string helperMethod(char *text) { return std::string(text); }
targetMethod(helperMethod().c_str());
helperMethod()返回的std :: string,並調用代碼獲取其潛在的char *,並將它傳遞給targetMethod()。我擔心返回的字符串是臨時的,因此考慮它的底層char *是危險的。所以相反,我應該這樣做:
std::string myTemp = helperMethod("hello");
targetMethod(myTemp.c_str());
謝謝,科迪。我需要磨礪我的搜尋。 – MJF