Rust

Memory Management

Stack vs heap, allocator, Drop trait, RAII, vazamentos de memória com ciclos Rc, Pin<T>

20 perguntas de entrevista·
Senior
1

Em Rust, onde são armazenadas as variáveis locais de tipos primitivos como i32 ou bool?

Resposta

As variáveis locais de tipos primitivos são armazenadas na stack. A stack oferece alocação e desalocação muito rápidas porque opera segundo o princípio LIFO (Last In, First Out). Os tipos primitivos têm um tamanho conhecido em tempo de compilação, o que permite ao compilador reservar o espaço necessário no stack frame da função atual.

2

Qual smart pointer deve ser usado para alocar um valor no heap com um único proprietário?

Resposta

Box<T> é o smart pointer mais simples para alocar dados no heap. Ele garante um único proprietário e libera a memória automaticamente quando o Box sai do scope. Box é útil para tipos com tamanho desconhecido em tempo de compilação, para estruturas grandes que não se quer copiar na stack, ou para tipos recursivos.

3

O que é o padrão RAII (Resource Acquisition Is Initialization) em Rust?

Resposta

RAII é um padrão em que os recursos (memória, arquivos, conexões) são adquiridos durante a criação de um objeto e liberados automaticamente na sua destruição. Em Rust, isso é feito por meio do trait Drop, que é chamado automaticamente quando um valor sai do scope. Esse padrão garante que nenhum recurso seja esquecido e evita vazamentos de memória.

4

Quando o trait Drop é chamado automaticamente em Rust?

5

Como é possível criar um vazamento de memória (memory leak) com Rc<T> em Rust?

+17 perguntas de entrevista

Domine Rust para sua proxima entrevista

Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.

Comece gratis