Rust

Unsafe Rust

unsafe 블록, raw 포인터 (*const T, *mut T), FFI, unsafe 트레이트, Undefined Behavior (UB), safety 불변 조건

20 면접 질문·
Senior
1

Rust에서 unsafe 모드의 슈퍼파워를 활성화하는 키워드는 무엇입니까?

답변

unsafe 키워드는 safe Rust에서 금지된 다섯 가지 기능을 해제합니다: raw 포인터 역참조, unsafe 함수 호출, mutable static 변수 접근, unsafe 트레이트 구현, 그리고 union 필드 접근입니다. 이 블록은 개발자가 memory safety를 보장할 책임을 진다는 것을 컴파일러에 알립니다.

2

unsafe 코드는 safe Rust에 비해 몇 가지 추가 기능을 해제하나요?

답변

unsafe 모드는 정확히 다섯 가지 기능을 해제합니다: raw pointer 역참조, unsafe 함수나 메서드 호출, 가변 static 변수 접근 또는 수정, unsafe trait 구현, 그리고 union 필드 접근입니다. 이 다섯 가지 연산이 safe Rust와 unsafe Rust의 유일한 차이입니다.

3

Rust에서 변수에 대한 immutable raw pointer를 생성하는 올바른 문법은 무엇인가요?

답변

immutable raw pointer를 생성하는 문법은 let ptr = &x as *const T입니다. *const T 타입은 immutable raw pointer를 나타냅니다. raw pointer 생성은 safe하며, deref만 unsafe 블록이 필요합니다. let ptr: *const T = &x로 암시적 강제 변환을 사용할 수도 있습니다.

4

Rust에서 *const T와 *mut T의 차이점은 무엇인가요?

5

safe Rust에서 raw pointer 생성은 허용되지만 역참조는 허용되지 않는 이유는 무엇인가요?

+17 면접 질문

다음 면접을 위해 Rust을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기