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,callocerealloc. - Como liberar a memória alocada usando
free. - Como evitar vazamentos de memória.

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
mallocecalloc. - Como realocar memória usando
realloc. - Como liberar memória usando
freepara evitar vazamentos de memória.
Em seguida, exploraremos arrays de ponteiros e ponteiros para funções em C!

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
- Introdução a ponteiros
- Alocação dinâmica de memória
- Arrays de ponteiros e ponteiros para funções