0
我正在使用Visual Studio 2012(標準C++,無/ clr支持)在C++中編寫模擬項目,我面臨以下問題。通過引用傳遞後的字符串更改
theClassObject->Method("12345")
其中在類的方法的定義是:: 在代碼某處我通過引用傳遞字符串
TheClass::Method(const std::string& STR) {..}
,當我調試它具有在檢查STR的值前面還有四個字節,例如「〜#.a12345」,字符串的長度增加了這四個字節。 在其他地方的代碼與其他類似的方法,這不會發生。
我錯過了該項目的一些編譯器選項,或者我錯過了其他原因?
我不確定我是否提供了所需的所有信息,但如果需要,我可以提供。
在此先感謝!
這不應該發生。從你發佈的內容來看,幾乎不可能猜測哪裏出了問題。你能把你的問題減少到一個仍然可以編譯的子集嗎? – nvoigt
您正在將它作爲const引用發送,因此您不能更改函數Method()內部的字符串,它正在其他地方更改。你能發表一個樣本工作代碼嗎?(SSCCE) – vathsa
這很奇怪......你正在改變一個const引用!發佈'TheClass :: Method(const std :: string&STR)'的實現。它可能是一個顯示錯誤值的調試配置。 –