A stack (pilha de execução) é uma das principais regiões de memória utilizadas durante a execução de um programa. Ela é responsável por armazenar:

Essa estrutura é fundamental para o funcionamento correto do fluxo de execução de um programa.

2.1 Funcionamento da Stack

A stack funciona seguindo o princípio LIFO (Last In, First Out), ou seja, o último elemento inserido é o primeiro a ser removido.

Durante a execução de um programa:

  1. Quando uma função é chamada, uma nova região é criada na stack
  2. Essa região armazena os dados da função
  3. Quando a função termina, essa região é removida
  4. O controle retorna para a função anterior

Esse comportamento é conhecido como empilhamento de chamadas de função.

2.2 Estrutura de uma Chamada de Função

Considere o seguinte exemplo:

#include <stdio.h>

void funcao() {
  int x = 5;
  printf("%d\n", x);
}

int main() {
  funcao();
  return 0;
}

Durante a execução: