Вопрос в лоб - а на кой stl прикручивать ? чем toLocal8Bit или toAscii не устраивает ? Собственно тот объект из которого ты получаешь буфер будет удален после выполнения метода c_str() - собственно указатеь висит в воздухе ... Копируй строку во времянку .. должно полегчать