Rust

Memory Management

Stack vs heap, allocator, Drop trait, RAII, fugas de memoria con ciclos Rc, Pin<T>

20 preguntas de entrevista·
Senior
1

En Rust, ¿dónde se almacenan las variables locales de tipos primitivos como i32 o bool?

Respuesta

Las variables locales de tipos primitivos se almacenan en la stack. La stack ofrece una asignación y liberación muy rápidas porque funciona según el principio LIFO (Last In, First Out). Los tipos primitivos tienen un tamaño conocido en tiempo de compilación, lo que permite al compilador reservar el espacio necesario en el stack frame de la función actual.

2

¿Qué smart pointer se debe usar para asignar un valor en el heap con un único propietario?

Respuesta

Box<T> es el smart pointer más simple para asignar datos en el heap. Garantiza un único propietario y libera la memoria automáticamente cuando el Box sale del scope. Box es útil para tipos con tamaño desconocido en tiempo de compilación, para estructuras grandes que no se quieren copiar en la stack, o para tipos recursivos.

3

¿Qué es el patrón RAII (Resource Acquisition Is Initialization) en Rust?

Respuesta

RAII es un patrón en el que los recursos (memoria, archivos, conexiones) se adquieren durante la creación de un objeto y se liberan automáticamente al destruirlo. En Rust, esto se logra mediante el trait Drop, que se invoca automáticamente cuando un valor sale del scope. Este patrón garantiza que ningún recurso quede olvidado y evita las fugas de memoria.

4

¿Cuándo se llama automáticamente al trait Drop en Rust?

5

¿Cómo se puede crear una fuga de memoria (memory leak) con Rc<T> en Rust?

+17 preguntas de entrevista

Domina Rust para tu próxima entrevista

Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.

Empieza gratis