细节:
我使用这个 github 项目将 Json 转换为对象。
https://github.com/ereilin/qt-json
有了这个json:
{
"bin": "/home/pablo/milaoserver/compile/Devices01.olk",
"temp":"/home/pablo/milaoserver/temporal/",
"port": "1234",
"name": "lekta",
}
用这两行我创建了两个 char 指针:
char* bin = configuration["bin"].toString().toLatin1().data();
char* temp = configuration["temp"].toString().toLatin1().data();
调试应用程序我有正确的字符串。
但是,当我使用它们时,具体而言,“bin”字符变为
`hom
任何想法?
评论中的解决方案:
问题在于数据的“持久性”。
我找到了解决方案:
std::string binAux(configuration["bin"].toString().toLatin1().data());
std::string tempAux(configuration["temp"].toString().toLatin1().data());
char* bin = new char[binAux.size()+1] ;
strcpy(bin, binAux.c_str());
char* temp = new char[tempAux.size()+1] ;
strcpy(temp, tempAux.c_str());