
Memory Management
Stack vs heap, allocator, Drop trait, RAII, fugas de memoria con ciclos Rc, Pin<T>
1En Rust, ¿dónde se almacenan las variables locales de tipos primitivos como i32 o bool?
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?
¿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?
¿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.
¿Cuándo se llama automáticamente al trait Drop en Rust?
¿Cómo se puede crear una fuga de memoria (memory leak) con Rc<T> en Rust?
+17 preguntas de entrevista
Otros temas de entrevista Rust
Fundamentos de Rust
Ownership & Borrowing
Structs & Enums
Manejo de errores
Colecciones
Módulos y Paquetes
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
async/await
Testing
Cargo & Ecosystem
Pattern Matching
Macros
Serde y serialización
Unsafe Rust
Traits avanzados
Lifetimes Avanzados
Type System
Tokio & Async I/O
Optimización de Rendimiento
Web Frameworks
Database Integration
Patrones de diseño en Rust
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