我很難解決運行時問題C++,使用Visual Studio 2010,它雖然編譯得很好。const char *&作爲函數參數C++
我有一類函數的API(從另一個DLL)在此簽名:
ReturnCode GetValue(const char* &value) const;
我把它用:
ReturnCode Test::getStuff(const char* &value)
{
ValueGetter valueGetter = myClass.GetValueGetter();
ReturnCode returnCode = valueGetter.GetValue(value);
return returnCode;
}
而且使用
const char* tempStr;
getStuff(tempStr);
稱爲
我所看到的是,值調用valueGetter.GetValue(值)後正確設置的行。但是,一旦我走出功能的範圍再增加一次,這個價值就變成了胡言亂語。我做錯了什麼,以及我如何正確地做到這一點?希望不必分配內存,複製值,我稍後會刪除。
似乎沒有成爲這裏有什麼問題。你怎麼調用'getStuff'? –
你在valueGetter.GetValue中賦值了什麼?這似乎是一個本地價值超出範圍並被銷燬的案例(您賦予的價值)。另外,如果在發行模式下運行程序,可能會導致優化。 – Spook
'價值變成亂碼'價值本身是否發生變化,或者這個價值指向的內存變成亂碼? –