мета-данные страницы
  •  

Это старая версия документа!


stdlib.h

Управление динамической памятью

malloc

Функция malloc() выделяет память длиной для определенного количества байт и возвращает указатель на начало выделенной памяти. Через полученный указатель мы можем помещать данные в выделенную память. Рассмотрим простой пример:

#include <stdio.h>
#include <stdlib.h>   // для подключения функции malloc
 
int main(void) {
  int *ptr = malloc(sizeof(int)); // выделяем память для одного int
  if(ptr != NULL) {
    *ptr = 24;      // помещаем значение в выделенную память
    printf("%d \n", *ptr);
  }
  free(ptr);
  ptr = NULL;
}
Немотря на освобождение памяти с помощью функции free() указатель сохраняет свой адрес, и теоретически мы можем обращаться к памяти по данному указателю. Однако полученные значения уже будут неопределенными и недетеминированными. Поэтому некоторые советуют после освобождения памяти также устанавливать для указателя значение NULL

выделение памяти под массив

выделение памяти под структуру