[英]C++ what happens first - destruction of function's parameters or handling of function's return values?
[英]What happens first, implicit conversion to return value or destruction of local variable?
我只是碰到了下面的代碼,看起來像我一樣腥(詳細遺漏以保護無辜者):
std::string MakeString()
{
char buf[12] = { 0 };
return &buf[0];
}
這樣可以還是不安全? 是否保證在buf超出范圍之前創建std :: string?
你寫的相當於:
std::string MakeString()
{
char buf[12] = { 0 };
return buf;
}
並始終保證此代碼是安全的。 實際上,這種情況與通過復制返回值的任何函數沒有太大區別。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.