LINUX.ORG.RU

баг в Qt проблема конверта QString в char* ... с дальнейшим Segmentation fault


0

0

баг в Qt проблема конверта QString в char* ... с дальнейшим Segmentation fault

char *tempfile; QString file = QFileDialog::getOpenFileName( QString::null, "*.sor", this ); strcpy(tempfile,file.latin1());

if ( !file.isEmpty() ) { rDrawOview->Load(tempfile); //rDrawOview->Load("/work/app2/sor_demo/demo.sor");

} else { //rDrawOview->Load("/work/app2/sor_demo/demo.sor"); }

Вот если делать так rDrawOview->Load(tempfile); то падает приложение а если прямо указать путь rDrawOview->Load("/work/app2/sor_demo/demo.sor"); то все ОК...

функция Load принемает char* и все.... в чем баг???

как лечить??? спасибо

anonymous

Я конечно могу ошибаться. Но разве можно копироватьв указатель. Его надо сначала инициализировать и выделить под него память.

tempfile = new char[sizeof(file.latin1())];

И только потом

strcpy(tempfile,file.latin1());

anonymous
()

Упс!

да-да спасибо!

просто конец рабочего дня ... мозг устает

anonymous
()

tempfile = new char[strlen(file.latin1())]; ;)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.