malloc



Malloc c

Автор КД задал вопрос в разделе Другие языки и технологии

C: malloc, free, NULL и получил лучший ответ

Ответ от Николай Веселуха[гуру]
int * p; // Создали указатель типа int
/*
Так как функция malloc возвращает указатель типа void *,
каждый раз при выделении памяти требуется явно преобразовывать
к типу указателя, по которому выделяется эта память
*/
p = (int *) malloc(sizeof(int)); // Выделили по этому указателю память
....// Что-то сделали.. .
free(p); // Освободили выделенную память
p = NULL; // Обнулили адрес указателя

Ответ от Андрей Макарычев[гуру]
malloc - выделение оперативной памяти для нужд вашей программы.
free - освобождение памяти.
Когда использовать - malloc по мере необходимости в памяти, free - когда память можно освободить (но забывать не следует) .
Разница между созданием массива и malloc - массив создается заранее определенного размера, тогда как malloc предполагает выделение требуемого в данный момент времени куска памяти, то есть размер памяти можно определять уже при выполнении программы.
Использовать free(realloc) отдельно от malloc (new) - корректно не получится: им нужен указатель на выделенный участок памяти.

Ответ от 22 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: C: malloc, free, NULL
Динамическое распределение памяти на Википедии
Посмотрите статью на википедии про Динамическое распределение памяти
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*