| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Функция выдает строку |
| Автор: aush 27.8.2007, 12:07 | ||||
| Доброго времени суток! Столкнулся с проблемой. Вроде просто, но что что-то странное у меня получается.... Итак: имеется функция
Внутри функции все нормально, значения присваиваются. НО. При вызове функции:
Переменная te получает "" Вопрос: где может быть глюк? |
| Автор: dumb 27.8.2007, 12:21 |
нажми F1 и найди описание c_str. |
| Автор: Fazil6 27.8.2007, 12:23 | ||
не вижу никакого глюка. Работает именно так как ты и написал в коде. Ты пытаешься возвратить указатель на внутренний буфер переменной AnsiString res2 , но при выходе из твоей функции эта переменная удаляется вместе со своим буфером. Поэтому и имеешь то, что имеешь. Возвращай AnsiString
|
| Автор: 586 27.8.2007, 12:25 |
| ни какой это не глюк. объект res2 уничтожается при выходе из функции, а char *res - это указатель на буффер в объекте AnsiString res2 |
| Автор: aush 27.8.2007, 13:47 |
| dumb, смотрел, работает как раз правильно и именно так, как и надо... Fazil6, 586, Спасибо! Так и думал, что глюк надо искать в кривых руках)) Просто странно, я с самого начало сделал дословно так, как написал Fazil6, т.е. выдавал сразу строку, но у меня по той же причине кривых рук что-то не заработало, вот и стал выкручивать. Как ни странно сейчас все заработало!)) |