callo c () описание из man7
#include <stdlib.h>
void *calloc(size_t nelem, size_t elsize);
Функция calloc()
выделяет неиспользуемое пространство для массива nelem
элементов, каждый из которых размер в байтах elsize
. Пространство должно быть инициализировано для всех bits 0
. Порядок и непрерывность памяти, выделенной последовательными вызовами calloc()
, не определены. Указатель возвращается, если выделение ...
Я рекомендую вам продолжить чтение по ссылке man7_callo c.
теперь, после прочтения описания выше , вызов calloc
кажется мне простым: в вашем случае мы выделяем массив из одного struct person
struct Person* p = NULL;
struct Person* p = calloc(1, sizeof(struct Person));
, вы должны проверить возвращаемое значение calloc
(если callo c успешно выделил, как mallo c):
if(p == NULL){
puts("calloc failed");
...
...
}