gpt4 book ai didi

c++ - 巴达 C++ std::stringstream

转载 作者:行者123 更新时间:2023-11-30 03:03:32 24 4
gpt4 key购买 nike

bada 在读取字符串流时崩溃。

json::Object objDocument = d();
std::stringstream stream;
json::Writer::Write(objDocument, stream);
json::Object objDocument2;
json::Reader::Read(objDocument2, stream); // <=== crash

或者像这样:

std::string *requestString = new std::string(data);
AppLog(requestString->c_str()); // <=== contains correct data
std::stringstream stream;
stream << *requestString;
const char *ddd = stream.str().c_str();
AppLog(ddd); // <==== contains random data

我该如何解决?
谁有想法或相同的经验?

最佳答案

字符串 stream.str() 是一个临时字符串,在您使用它获取 c_str() 之后指针将不再有效。

如果您将引用保存在临时文件中,该字符串将保留:

std::string ddd_str = stream.str();
const char *ddd = ddd_str.c_str();
// ddd_str is still in scope and so ddd is still valid...

关于c++ - 巴达 C++ std::stringstream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9306955/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com