Что то я туплю. В qt есть контейнеры QString и QByteArray.
Положим есть такой код:
QString str = "hello";
QByteArray x(str.toStdString().c_str());
Во второй строке конструктору QByteArray ( const char * str ) передается указатель на char полученный вызовом метода c_str() ВРЕМЕННОГО объекта std::stding.
Вопрос: описано ли в стандарте то что конструктор QByteArray получит указатель на живые данные, что этот временный объект уже не умрет к моменту вычитывания данных из объекта?
Гарантированно работоспособный вариант:
QString str = "hello";
std::string s = str.toStdString();
QByteArray x(s.c_str());