| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Работа с malloc() и указателями в СИ |
| Автор: murtukov 30.1.2013, 07:32 | ||
| Всем привет. Написал программу, которая выделяет память под двумерный массив и сохраняет в него имена. Размер выделяемой памяти зависит от количества и длины слов, которое определяется пользователем. Программка рассчитана на сохранение n-го количества слов, которое также определяется пользователем в начале программы (при запуске). Вот, собственно, и сам код программы:
Все подробно прокомментировал. Программка выполняется только если вводить два имению Если больше - зависает. Видимо у меня где-то ошибка в понимании указателей или функции malloc(). Прошу помочь найти ошибку в коде. Спасибо. |
| Автор: fish9370 31.1.2013, 13:02 | ||
| feodorv все грамотно расписал, я лишь добавлю: - функция malloc может не выделить память (смотри man malloc), при этом следует корректно обработать данную ситуацию. Обычно пишут обертку типа:
- функция malloc не инициализирует память нулями, если нужно чтобы память была очищена используй calloc (это может быть более быстро, чем очищать самому, так как ядро постарается предоставить буфер уже чистый) - функцию malloc в Си не обязательно (и не желательно) приводить к типу (смотри пример выше) |