Dando continuidade ao nosso Curso de Programação com a Linguagem C, na aula anterior conhecemos a função malloc para alocação dinâmica de memória. Nesta aula vamos aprender a função CALLOC, também para alocação dinâmica de memória.
A função calloc também serve para alocação dinâmica de memória assim como a função malloc que aprendemos na aula anterior. A diferença é que a função calloc recebe dois parâmetros, a quantidade de elementos que iremos salvar na região de memória alocada e o tamanho em memória de um elemento desse tipo.
Vamos a um exemplo. Para alocar memória para um caracter fazemos assim:
char *x; x = calloc(1, sizeof(char));
Perceba que o primeiro parâmetro é a quantidade de caracteres que iremos salvar na memória alocada e o segundo parâmetro é quanta memória ocupa por um caracter. A função fará a multiplicação da quantidade de memória vezes a quantidade de elementos.
Se fosse um inteiro seria exatamente igual, trocando apenas o tipo de dado, assim:
int *x; x = calloc(1, sizeof(int));
Código de exemplo completo em C com a função calloc
/* Aula 198: Alocação dinâmica de memória com a função calloc. Código escrito por Wagner Gaspar Maio de 2021 */ int main(){ char *x; //x = malloc(sizeof(int)); x = calloc(1, sizeof(char)); if(x){ printf("Memoria alocada com sucesso!\n"); printf("x: %c\n", *x); *x = 'H'; printf("x: %c\n", *x); } else{ printf("Erro ao alocar memoria!\n"); } return 0; }