Rust

Memory Management

Stack vs. Heap, Allocator, Drop trait, RAII, Memory Leaks durch Rc-Zyklen, Pin<T>

20 Interview-Fragen·
Senior
1

Wo werden in Rust lokale Variablen primitiver Typen wie i32 oder bool gespeichert?

Antwort

Lokale Variablen primitiver Typen werden auf dem Stack gespeichert. Der Stack bietet eine sehr schnelle Allokation und Freigabe, da er nach dem LIFO-Prinzip (Last In, First Out) arbeitet. Primitive Typen haben eine zur Compile-Zeit bekannte Größe, wodurch der Compiler den nötigen Platz im Stack-Frame der aktuellen Funktion reservieren kann.

2

Welcher Smart Pointer sollte verwendet werden, um einen Wert mit einem einzigen Eigentümer auf dem Heap zu allozieren?

Antwort

Box<T> ist der einfachste Smart Pointer für die Heap-Allokation. Er garantiert alleinige Ownership und gibt den Speicher automatisch frei, wenn die Box den Scope verlässt. Box ist nützlich für Typen mit zur Compile-Zeit unbekannter Größe, für große Strukturen, die nicht auf dem Stack kopiert werden sollen, oder für rekursive Typen.

3

Was ist das RAII-Muster (Resource Acquisition Is Initialization) in Rust?

Antwort

RAII ist ein Muster, bei dem Ressourcen (Speicher, Dateien, Verbindungen) bei der Erstellung eines Objekts erworben und bei dessen Zerstörung automatisch freigegeben werden. In Rust geschieht dies über den Drop-Trait, der automatisch aufgerufen wird, wenn ein Wert den Scope verlässt. Dieses Muster stellt sicher, dass keine Ressource vergessen wird, und verhindert Speicherlecks.

4

Wann wird der Drop-Trait in Rust automatisch aufgerufen?

5

Wie kann mit Rc<T> in Rust ein Speicherleck (Memory Leak) erzeugt werden?

+17 Interview-Fragen

Meistere Rust für dein nächstes Interview

Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.

Kostenlos starten