Ola,
Gostaria de entender melhor um pequeno trecho da aula que onde, baseado na minha experiencia, não ocorre. (ou, eu que entendi errado).
Curso: Avançando com C++: Entenda melhor a linguagem.
Minutagem: 02:17
Transcrição:
[02:02] Repara que tem um bloco, quando uma função é executada, quando esse conjunto de instruções é executado, o que o computador, o que o sistema operacional faz? [02:11] Ele separa dentro desse espaço, que é o que nós estamos falando agora, que é o que nós estamos conhecendo, ele separa um bloco que vai conter todos os dados, todas as informações necessárias para essa função. [02:24] Esse bloco tem aproximadamente dois mega de tamanho na maioria dos sistemas operacionais, isso depende, mas enfim, tem o espaço para nós armazenarmos dados, ou seja, variáveis. [02:35] Então, continuando, nós chamamos a funcao 1, ele vai separar mais um espaço, a função 1 vai ter esse espaço também para armazenar os seus dados e vai executando, quando chama a função 2, de novo, mais um espaço é alocado, ou seja, dentro disso, desse espaço grande de memória, nós vamos adicionando esses blocos para cada uma das funções.
Segundo este trecho da explicação, deixa a entender que para cada função chamada, o sistema operacional reserva 2 MB de espaço em memória, ou seja, se, por exemplo, eu chamar 5 funções em cascata, essas 5 funções irão para pilha da memória (stack) e que cada uma destas funções utilizaria 2 MB, totalizando 10 MB.
De acordo com minha experiência e testes este comportamento não ocorre, o comportamento que tenho em meus testes é que na memória será armazenado somente o que foi realmente declarado.