Иногда необходимо динамическое выделение памяти, когда размер используемого пространства заранее не известен. Для этого используется выделение памяти на куче. Недостатков у такого подхода два:

▪️ во-первых, память необходимо вручную очищать.

▪️ во-вторых, выделение памяти – достаточно дорогостоящая операция.



Для выделения памяти на куче в си используется функция malloc (memory allocation) из библиотеки stdlib.h



void * malloc(size_t size);

Функция выделяет size байтов памяти и возвращает указатель на неё. Если память выделить не удалось, то функция возвращает NULL. Так как malloc возвращает указатель типа void, то его необходимо явно приводить к нужному нам типу. А на видео показано что будет, если не очищать 😏



🔵 Эпсилон