calloc() в C: выделение обнулённой памяти и практический пример
Что такое calloc в C?
calloc() выделяет несколько блоков памяти одинакового размера и инициализирует каждый байт нулём. Это динамическая функция для сложных структур — массивов или структур — возвращает void *.
В отличие от malloc(), резервирующего один непрерывный блок, calloc() запрашивает n блоков по size байт, гарантируя их обнуление и непрерывность.
Синтаксис
ptr = (cast_type *)calloc(n, size);
- Запрашивает
nблоков поsizeбайт. - Все байты автоматически обнуляются.
- Возвращает указатель на первый байт или
NULLпри неудаче.
Использование calloc — пример программы
Программа демонстрирует вычисление суммы первых десяти членов арифметической прогрессии.
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int *ptr, sum = 0;
ptr = calloc(10, sizeof(int));
if (!ptr) {
fprintf(stderr, "Error! Memory not allocated.\n");
return EXIT_FAILURE;
}
printf("Calculating the sum of the first 10 terms:\n");
for (int i = 0; i < 10; ++i) {
ptr[i] = i;
sum += ptr[i];
}
printf("Sum = %d\n", sum);
free(ptr);
return EXIT_SUCCESS;
}
Вывод
Calculating the sum of the first 10 terms: Sum = 45
Язык C
- Структуры (struct) в C++: объяснение с практическим примером
- std::map в C++: полное руководство с примерами кода
- Освоение std::list в C++: синтаксис, функции и практические примеры
- Функции в C++: подробное объяснение с практическими примерами кода
- Использование realloc() в C: синтаксис, лучшие практики и пример
- Освоение функции free() в C: практическое руководство и пример
- Алгоритм сортировки вставками в Java: понятный пример и пошаговое руководство
- Сортировка выбором в Java: пошаговый пример и полный код
- Мастерство метода strip() в Python: подробное руководство и практические примеры
- Освоение локальных подпрограмм Haas M97: Пошаговый пример