Junior
O que é uma pilha e um monte?
sobes.tech IA
Resposta da IA
- Pilha (Stack) - é uma área de memória usada para armazenar variáveis locais, parâmetros de funções e endereços de retorno durante chamadas de funções.
- É gerida automaticamente pelo compilador.
- O acesso aos dados é rápido.
- O tamanho é fixo durante a compilação (ou é determinado na chamada da função).
- Os dados são adicionados e removidos em ordem LIFO (último a entrar, primeiro a sair).
- Heap (Montículo) - é uma área de memória usada para alocação dinâmica de memória.
- É gerida manualmente pelo programador (por exemplo, através de
alloc,mallocou a semântica de propriedade em ARC/Swift). - O acesso aos dados pode ser mais lento devido à necessidade de procurar blocos livres de memória.
- O tamanho pode mudar durante a execução do programa.
- Os dados podem ser adicionados ou removidos em qualquer ordem.
- É gerida manualmente pelo programador (por exemplo, através de
| Propriedade | Pilha | Montículo |
|---|---|---|
| Gestão | Automática (compilador) | Manual/semi-automática (ARC) |
| Velocidade de acesso | Rápida | Potencialmente mais lenta |
| Tamanho | Fixo/Determinado na chamada | Variável durante a execução |
| Ordem | LIFO | Arbitrário |
| Armazena | Variáveis locais, parâmetros, endereços de retorno | Objetos alocados dinamicamente |