Memória
Os programas em Rust têm 3 regiões de memória onde os dados são armazenados:
- data memory (memória de dados) - Para dados com tamanho fixo e estático (ou seja, sempre disponíveis durante a vida útil do programa). Considere um texto em seu programa (por exemplo, "Olá, mundo!"), os bytes desse texto são somente lidos, então eles são colocados nesta região. Compiladores fazem muitas otimizações esse tipo de dados, eles geralmente são considerados muito rápidos de usar pois onde estão armazenados são conhecidos e fixos.
- stack memory (memória de pilha) - Para dados declarados como variáveis dentro de uma função. O local dessa memória nunca muda durante a duração de uma chamada de função, assim os compiladores podem otimizar o código e por isso a pilha de dados é muito rápida de acessar.
- heap memory - Para dados criados enquanto o aplicativo está em execução. Os dados nessa região podem ser adicionados, movidos, removidos, redimensionados etc. Por causa da sua natureza dinâmica geralmente é considerado mais lenta, mas permite usos de memória muito mais criativas. Quando dados são adicionados a essa região, chamamos de alocação. Quando os dados são removidos desta seção, chamamos de desalocação.