可能重複:
Can a local variable's memory be accessed outside its scope?C++返回參考函數範圍內聲明
我做一些代碼審查時看到的功能。
wchar_t* GetString(HINSTANCE hInstance, UINT SID)
{
wchar_t buf[2048] = {0};
LoadStringW(hInstance, SID, buf, sizeof(buf)/sizeof(wchar_t));
return &buf[0];
}
void SomeWork()
{
std::wstring str(GetString(hInst, 123));
}
我想BUF應該被銷燬後立即函數返回, 使指針& BUF [0]可能無效。 但它似乎工作正常,它是如何工作的? 這是一個很好的設計? 謝謝。