Menu
Coddy logo textTech

Memória Stack vs. Heap

Parte da seção Lógica e Fluxo do Journey de C da Coddy. Lição 31 de 63.

Quando seu programa em C é executado, ele usa duas regiões distintas da memória: a pilha e o heap. Entender a diferença entre essas áreas de memória é fundamental para programar em C com eficiência, especialmente ao trabalhar com ponteiros e alocação dinâmica de memória.

A pilha é usada para a alocação estática de memória. É nela que suas variáveis locais, parâmetros de função e informações sobre chamadas de função são armazenados. A pilha é gerenciada automaticamente pelo sistema: quando você declara uma variável local, a memória é alocada na pilha e, quando a variável sai do escopo, essa memória é liberada automaticamente.

void function() {
    int x = 10;  // Alocado na pilha
    char arr[100];  // Também alocado na pilha
    // A memória é liberada automaticamente quando a função termina
}

O heap é usado para alocação dinâmica de memória. Este é um pool de memória maior que você pode solicitar durante a execução do programa.

Ao contrário da pilha, o heap exige gerenciamento manual — você deve solicitar memória explicitamente e depois liberá-la quando terminar. Isso oferece mais controle, mas também mais responsabilidade.

A principal diferença é o gerenciamento: a memória da pilha é automática e limitada em tamanho, enquanto a memória do heap é manual e muito maior. Nas próximas lições, você aprenderá a trabalhar com a memória do heap usando funções como malloc() e free().

Experimente você mesmo

Esta lição não inclui um desafio de código.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica e Fluxo

Pratique por conta própria: Compilador de C online