我很难解决运行时问题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
'价值变成乱码'价值本身是否发生变化,或者这个价值指向的内存变成乱码? –