Мне нужно сделать некоторые предположения, потому что вы не опубликовали весь свой код, но я подозреваю, что проблема возникает в следующей строке:
dcmWriter->SetFileName(fullPath.toStdString().c_str());
toStdString()
, скорее всего, возвращает временный std::string
(fullPath
выглядит как Qt QString
), на который вы звоните c_str()
. После этого утверждения ваш временный объект уничтожается, и все, что вы передали SetFileName
, теперь является висящим указателем. Отсюда и ошибка.
Попробуйте вместо этого следующее:
const auto pathString = fullPath.toStdString();
dcmWriter->SetFileName(pathString.c_str());
Надеюсь, это должно работать нормально. Даже если это не так, это определенно проблема с вашим кодом.