aula 198

Alocação dinâmica de memória com a função CALLOC

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;
}

Deixe um comentário

2 + 7 =

Wagner Gaspar

Capixaba de São Gabriel da Palha, Espírito Santo. Bacharel em Ciência da Computação pela Universidade Federal do Amazonas e mestre em informática pela Universidade Federal do Espírito Santo.