Rust

Unsafe Rust

Bloques unsafe, raw pointers (*const T, *mut T), FFI, unsafe traits, Undefined Behavior (UB), invariantes de safety

20 preguntas de entrevista·
Senior
1

¿Qué palabra clave habilita los superpoderes del modo unsafe en Rust?

Respuesta

La palabra clave unsafe desbloquea cinco capacidades prohibidas en safe Rust: desreferenciar raw pointers, llamar funciones unsafe, acceder a variables estáticas mutables, implementar unsafe traits y acceder a campos de unions. Este bloque le indica al compilador que el desarrollador asume la responsabilidad de garantizar la memory safety.

2

¿Cuántas capacidades adicionales desbloquea el código unsafe en comparación con safe Rust?

Respuesta

El modo unsafe desbloquea exactamente cinco capacidades: desreferenciar raw pointers, llamar a funciones o métodos unsafe, acceder o modificar variables mutables estáticas, implementar traits unsafe y acceder a los campos de las unions. Estas cinco operaciones son las únicas diferencias entre safe y unsafe Rust.

3

¿Cuál es la sintaxis correcta para crear un raw pointer inmutable hacia una variable en Rust?

Respuesta

La sintaxis para crear un raw pointer inmutable es let ptr = &x as *const T. El tipo *const T representa un raw pointer inmutable. Crear raw pointers es safe, solo el deref requiere un bloque unsafe. También se puede usar la coerción implícita con let ptr: *const T = &x.

4

¿Cuál es la diferencia entre *const T y *mut T en Rust?

5

¿Por qué se permite crear raw pointers en safe Rust mientras que desreferenciarlos no?

+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