| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Вернуть указатель на массив. |
| Автор: ky0x5a 5.8.2011, 14:21 | ||
Доброе время суток, вот ф-ция:
При ее вызове printf("%s\n", ExtractDriveName()); в результате виден мусор символов вместо строки имен разделов hdd, но если вывести принтом pDrvs перед return внутри ф-ции то выводится ожидаемый результат. Что я не так делаю? |
| Автор: Greeneyed 5.8.2011, 15:00 |
| А тебя не смущает, что ты возвращаешь указатель на char drvs[24], который создается внутри функции, а значит после выхода из функции он удаляется? А значит после выхода из функции по этому адресу может лежать что угодно. |
| Автор: asmdzen 5.8.2011, 15:04 |
| попробуй поставить static перед char drvs[24]; |
| Автор: Greeneyed 5.8.2011, 16:00 |
| А еще лучше передавать в ExtractDriveName указатель на массив, аналогичный char drvs[24] и работать уже с ним. Хотя вариант от asmdzen, тоже может прокатить. |
| Автор: shara 5.8.2011, 16:17 | ||||
| добавит вашему коду понятности
да и лишний указатель можно убрать за ненадобностью
|
| Автор: baldina 5.8.2011, 17:33 | ||
|
| Автор: ky0x5a 8.8.2011, 08:52 |
| Спс парни, на СИ давно не писал, только PERL. |