1
我正在使用casablanca庫來序列化json值。C++,實用程序轉換:string_t轉換爲std :: string返回
我嘗試使用typedef std::wstring string_t
和this to convert from wstring to string轉換爲std :: string。它編譯正常,但程序在執行返回行時會崩潰。
std::string getString()
{
web::json::value cvalue;
/* ----- code ----- */
typedef std::wstring string_t;
string_t outputString = cvalue.serialize();
typedef std::codecvt_utf8<wchar_t> convert_type;
std::wstring_convert<convert_type, wchar_t> converter;
std::string converted_str = converter.to_bytes(outputString);
return converted_str;
}
我不明白爲什麼這會崩潰。以下是調用該函數的行。
std::string s = getString();
該計劃引發了一個名爲Xdebug的文件一個破發點,在這裏行free(_Ptr)
。我真的不明白這裏說的是什麼。希望這有助於爲你澄清事物。
template<class _Ty>
void __CLRCALL_OR_CDECL _DebugHeapDelete(_Ty *_Ptr)
{ // delete from the debug CRT heap even if operator delete exists
if (_Ptr != 0)
{ // worth deleting
_Ptr->~_Ty();
// delete as _NORMAL_BLOCK, not _CRT_BLOCK, since we might have
// facets allocated by normal new.
free(_Ptr);
}
}
謝謝!
你嘗試逐步執行代碼,看看它崩潰? – NathanOliver
@NathanOliver你好我的編輯幫助?它在返航線上墜毀。但我不知道它背後發生了什麼。 – XTT
從這個函數中取出json的東西,只是硬編碼一個字符串文字,也許'L「abc123」'並將其分配給'outputString'。該功能是否會崩潰? – PaulMcKenzie