| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Функция возращает неправильную строку. |
| Автор: 444ert666 4.7.2008, 09:07 | ||
| Здравствуйте! Только вот начал учить С++, при чем сразу же зателось че-нить написать. Первая же проблема, ввела в ступор, короче код:
В итоге в консоль выводятся иероглифы:(((((( если же расскомментирую printf(ret); в функции parseUrl, то хост выводится нормально, но значение влзращается косое, или я его неправильно получаю:(((((( помогите пожалуйста, пол вчерашнего дня мучился, ничего не понимаю:( |
| Автор: Sartorius 4.7.2008, 09:16 |
| Локальные переменные храняться на стеке, при выходе из функции ее стековый фрейм уничтожается (вместе с твоей строкой) так что выделяй память на куче или заведи статическую переменную |
| Автор: Maka6er 4.7.2008, 09:30 | ||||
Строчку:
|
| Автор: 444ert666 4.7.2008, 09:34 |
| Maka6er, АААА, спасибо огрмное, заработало Я по своей наивности, прдполагал, что выделение памяти, происходит при объявлении переменной. судя по всему, я заблуждался Огромное спасибо! Добавлено через 1 минуту и 28 секунд Sartorius, получается, если я выделю память malloc, и суну туда строку, то эта память не затрется при выходе из функции? |
| Автор: TanK1sT 4.7.2008, 12:35 | ||
Такая память освобождается при вызове функции free. |