Re: strange problem with const char *
Am 18.12.2013 11:28, schrieb alessio211734:
I have problem with conversion from QString to const char * , I know that it's not the right newsgroup but I don't know if is a c++ issue problem.
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QString str("ciao");
const char * xxx=str.toLatin1().constData();
_file(str.toLatin1().constData());
_file(xxx);
MainWindow w;
w.show();
return a.exec();
}
at the first call "_file(str.toLatin1().constData())" the debugger show that the parameter passed to function _file have the correct value while in the last call _file(xxx) the parameters passed to _file function is incorrect. I didn't understand why?
Whatever QString is, read the documentation of QString. Especially the
point how long the storage retuned by constData() remains valid.
Most likely you have undefined behavior because of a dangling reference,
because you passed a temporary to xxx and access it after the QString
instance, that provides the storage has been destroyed.
Marcel