Junior — Middle
Em que situações a alocação de memória ocorre automaticamente na pilha durante a execução do programa?
sobes.tech IA
Resposta da IA
No Go, a alocação de memória na pilha ocorre automaticamente para variáveis locais que:
- Têm um âmbito limitado (por exemplo, declaradas dentro de uma função).
- Não saem do âmbito da função (não são passadas por referência ou armazenadas no heap).
O compilador Go analisa o uso das variáveis e decide onde colocá-las: na pilha ou no heap. Se uma variável não "sai" do âmbito da função, ela é colocada na pilha, o que é mais rápido e eficiente.
Exemplo:
func foo() {
x := 10 // x é alocado na pilha
fmt.Println(x)
}
Se a variável for retornada pela função ou armazenada em um closure, ela será alocada no heap.
Assim, a alocação automática na pilha ocorre para variáveis locais com escopo e tempo de vida limitados, otimizando o funcionamento do programa.