O que é calloc em C?
O calloc () em C é uma função usada para alocar vários blocos de memória com o mesmo tamanho. É uma função de alocação de memória dinâmica que aloca o espaço da memória para estruturas de dados complexas, como arrays e estruturas, e retorna um ponteiro vazio para a memória. Calloc significa alocação contígua.
A função Malloc é usada para alocar um único bloco de espaço de memória, enquanto a função calloc em C é usada para alocar vários blocos de espaço de memória. Cada bloco alocado pelo calloc na programação C tem o mesmo tamanho.
calloc () Sintaxe:
ptr = (cast_type *) calloc (n, size);
- O exemplo de instrução acima de calloc em C é usado para alocar n blocos de memória do mesmo tamanho.
- Depois que o espaço de memória é alocado, todos os bytes são inicializados para zero.
- O ponteiro que está atualmente no primeiro byte do espaço de memória alocado é retornado.
Sempre que houver um erro na alocação de espaço de memória, como falta de memória, um ponteiro nulo é retornado, conforme mostrado no exemplo de calloc abaixo.
Como usar o Calloc
O programa calloc abaixo em C calcula a soma de uma seqüência aritmética.
#includeint main() {int i, * ptr, sum = 0;ptr = calloc(10, sizeof(int));if (ptr == NULL) {printf("Error! memory not allocated.");exit(0);}printf("Building and calculating the sequence sum of the first 10 terms \ n ");for (i = 0; i < 10; ++i) { * (ptr + i) = i;sum += * (ptr + i);}printf("Sum = %d", sum);free(ptr);return 0;}
Resultado do calloc no exemplo C:
Building and calculating the sequence sum of the first 10 termsSum = 45