0Pricing
C Academy · Aula

Alocação dinâmica de memória

Explore funções como malloc, calloc, realloc e free para gerenciar a memória dinamicamente.

Alocação dinâmica de memória é uma aula grátis de C Academy no CoddyKit. Esta é a aula 2 de 3. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C Academy inclui 3 aulas no total.

Alocação Dinâmica de Memória

Alocação Dinâmica de Memória

Em C, a alocação dinâmica de memória permite alocar memória durante a execução, em vez de no momento da compilação.

Nesta lição, você aprenderá:

  • Como alocar memória usando malloc, calloc e realloc.
  • Como liberar a memória alocada usando free.
  • Como evitar vazamentos de memória.
Alocação dinâmica de memória — ilustração 1

O Que É Alocação Dinâmica de Memória?

O Que É Alocação Dinâmica de Memória?

Normalmente, a memória das variáveis é alocada no momento da compilação.

Com a alocação dinâmica de memória, a memória é alocada durante a execução do programa usando funções especiais.

Isso é útil para gerenciar arrays ou estruturas cujo tamanho é desconhecido no momento da compilação.

Alocando Memória com malloc()

Alocando Memória com malloc()

A função malloc aloca memória, mas não a inicializa.

Sintaxe:

ptr = (int*) malloc(size * sizeof(int));

Ela retorna um ponteiro para a memória alocada ou NULL se a alocação falhar.

Exemplo: Usando malloc()

Exemplo: Usando malloc()

Este programa demonstra como alocar memória usando malloc.

#include <stdio.h>
#include <stdlib.h>

int main() {
    int *ptr = (int*) malloc(5 * sizeof(int));
    if (ptr == NULL) {
        printf("Memory allocation failed!\n");
        return 1;
    }
    for (int i = 0; i < 5; i++) {
        ptr[i] = i * 10;
        printf("%d ", ptr[i]);
    }
    free(ptr);
    return 0;
}

Alocando Memória com calloc()

Alocando Memória com calloc()

A função calloc aloca memória e a inicializa com zero.

Sintaxe:

ptr = (int*) calloc(num_elements, sizeof(int));

Ela retorna um ponteiro para a memória alocada ou NULL se a alocação falhar.

Exemplo: Usando calloc()

Exemplo: Usando calloc()

Este programa demonstra como alocar memória usando calloc.

#include <stdio.h>
#include <stdlib.h>

int main() {
    int *ptr = (int*) calloc(5, sizeof(int));
    if (ptr == NULL) {
        printf("Memory allocation failed!\n");
        return 1;
    }
    for (int i = 0; i < 5; i++) {
        printf("%d ", ptr[i]); // All elements initialized to 0
    }
    free(ptr);
    return 0;
}

Realocando Memória com realloc()

Realocando Memória com realloc()

A função realloc altera o tamanho da memória alocada anteriormente.

Sintaxe:

ptr = realloc(ptr, new_size * sizeof(int));

Ela retorna um ponteiro para o novo bloco de memória.

Liberando Memória com free()

Liberando Memória com free()

A memória alocada deve ser liberada usando free() para evitar vazamentos de memória.

Sintaxe:

free(ptr);

Depois de liberado, o ponteiro não deve ser acessado.

Resumo

Resumo

Nesta lição, você aprendeu:

  • Como alocar memória usando malloc e calloc.
  • Como realocar memória usando realloc.
  • Como liberar memória usando free para evitar vazamentos de memória.

Em seguida, exploraremos arrays de ponteiros e ponteiros para funções em C!

Alocação dinâmica de memória — ilustração 10

Perguntas Frequentes

A aula “Alocação dinâmica de memória” é grátis?

Sim — o texto completo de “Alocação dinâmica de memória” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C Academy, atualize para CoddyKit PRO. O curso de C Academy inclui 3 aulas no total.

O que vou aprender em “Alocação dinâmica de memória”?

Explore funções como malloc, calloc, realloc e free para gerenciar a memória dinamicamente. Você pratica C Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar C Academy?

Nenhuma experiência prévia é necessária. C Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 3.

Quanto tempo leva a aula “Alocação dinâmica de memória”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de C Academy?

Sim. Cada aula de C Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Introdução a ponteiros
  2. Alocação dinâmica de memória
  3. Arrays de ponteiros e ponteiros para funções
← Voltar para C Academy