#include int xexeu; int maria = 10; /* A pergunta final: e variáveis locais (aquelas declaradas dentro de uma função, a funcao main incluida), INICIALIZADAS ou NAO, como ficam ???? resposta: variaveis locais, INICIALIZADAS ou NAO, serao alocadas na STACK. Estas variaveis nao serao identificadas no comando "size", que usamos até agora para verificar a area de text, data e bss.. STACK: - stack é uma area reservada da RAM para variaveis definidas dentro das funções. Sempre que uma função é executada, as variaveis nela definidas são criadas TEMPORARIAMENTE na STACK. A funcao executa, e quando termina, tais variaveis são descartadas. Este espaço volta a ficar disponível para outras funcoes, por exemplo.. Interessante: uma stack tem tamanho limitado, normalmente definido pelo compilador.. Este espaco/tamanho é completamente diferente do espaco de dados que o programa pode utilizar.. que uma prova? declare o vetor: - char vetor[10000000]; localmente à funcao main() - ao executar terá um "segmentation fault", tipico de stack overflow. - declare o mesmo vetor GLOBALMENTE: - o seu programa deverá rodar normalmente... !!!! */ //char vetor[10000000]; void ola(){ char vet_em_ola[200]; printf("Estou na funcao ola..... \n"); } int main(void) { // vetor local na funcao main... //char vetor[10000000]; printf("Hello World!\n"); ola(); return 0; }