A execução de um programa em linguagem C é fortemente baseada no uso de funções. Cada vez que uma função é chamada, a stack é utilizada para armazenar as informações necessárias para sua execução.
Esse mecanismo é responsável por garantir que múltiplas funções possam ser executadas de forma organizada e previsível.
Considere o seguinte exemplo:
#include <stdio.h>
void funcao(int n, int* v){
int local;
printf("Executando funcao...\n");
v[0] = n;
}
int main() {
int numero;
int vetorzitcho[3] = {0};
scanf("%d", &numero);
funcao(numero, vetorzitcho);
return 0;
}
Durante a execução desse programa, ocorre a seguinte sequência:
main inicia sua execução e sua stack é criadanumero e vetorzitcho são armazenadas na stack de mainfuncao é chamadafuncaon e v, bem como a variável local, são armazenados nessa nova regiãofuncao, sua região de memória é removidamain
Cada função possui sua própria região de memória na stack. Isso garante que:
Esse isolamento é essencial para a organização e modularização de programas.