Подробности:Почему мой символ * меняется без причины?
Im, используя этот проект 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* bin = configuration["bin"].toString().toLatin1().data();
char* temp = configuration["temp"].toString().toLatin1().data();
Отладка приложения У меня есть соответствующие строки.
Однако, когда я использую их, конкретно в «БИН» символьные изменения
`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());
Возможно ли, что 'toString' создает временную строку, которая не существует, после завершения строки? –
Правильно ли значение 'temp' отображается? – lurker
Temp существует правильно. И ящик тоже. Но когда я «использую» их, меняются только бины: S –