Использование функции malloc в языке программирования C
Функция malloc() является одной из самых известных функций стандартной библиотеки языка С.
Она позволяет выделить блок памяти заданного размера в куче (heap), т.е. памяти, которая не является частью стека программы и доступна по запросу.
Пример кода для выделения блока памяти размером 100 байт:
#include
#include
int main() {
int* ptr = (int*) malloc(100);
if (ptr == NULL) {
printf("Memory allocation error\n");
return 1;
}
*ptr = 42;
printf("%d\n", *ptr);
free(ptr);
return 0;
}
В данном примере мы выделяем блок памяти размером 100 байт с помощью функции malloc(). Функция возвращает указатель на выделенную память. Если выделение не удалось, то функция возвращает NULL.
Мы сохраняем полученный указатель в переменную ptr. После этого мы можем работать с выделенной памятью, например, записать значение 42 в первые четыре байта выделенного блока, так как тип данных int занимает 4 байта.
После того, как мы закончили использование выделенной памяти, мы должны освободить ее с помощью функции free(ptr). Это предотвратит утечки памяти, когда она больше не нужна.
Кроме того, важно помнить, что блок, выделенный с помощью malloc(), не инициализируется нулями, т.е. его содержимое может быть произвольным. Если нам нужно обнулить блок памяти, то мы можем воспользоваться функцией calloc().