此代码是否安全?只是因为它没有错误地运行,我担心我正在为自己设置一个陷阱。将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