| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Битая память ostringstream::str().c_str() |
| Автор: MastEdm 20.5.2008, 11:55 | ||
| Добрый день. Проблема вот в чём:
То есть p указывает на область памяти с нулём вначале. Ясно, что бага где-то в либе. Чем лечить? |
| Автор: maxim1000 20.5.2008, 12:04 |
| метод str возвращает временный объект std::string (не ссылку на что-то внутри себя) потом у него берётся адрес буфера потом обработка выражения заканчивается, и временный объект удаляется, взятый адрес становится некорректным для того, чтобы доступаться к внутреннему буферу строки, нужно, как минимум, гарантировать её существование в течение всего времени использования этого адреса |
| Автор: Lazin 20.5.2008, 12:16 | ||
|
| Автор: Rififi 20.5.2008, 12:18 | ||
мысль что бага где-то в коде даже не допускается :gigi: |
| Автор: MastEdm 20.5.2008, 14:46 | ||||
Обхохочешься... |
| Автор: JackYF 20.5.2008, 15:43 |
| Модератор: не переходим на личности! MastEdm, насчёт "ясно, что бага в либе" ты всё-таки переборщил. На этом флейм заканчиваем. |