Rust

Memory Management

Stack vs heap, allocator, Drop trait, RAII, memory leaks door Rc-cycli, Pin<T>

20 gespreksvragen·
Senior
1

Waar worden in Rust lokale variabelen van primitieve types zoals i32 of bool opgeslagen?

Antwoord

Lokale variabelen van primitieve types worden op de stack opgeslagen. De stack biedt zeer snelle allocatie en deallocatie omdat hij volgens het LIFO-principe (Last In, First Out) werkt. Primitieve types hebben een grootte die bij het compileren bekend is, waardoor de compiler de benodigde ruimte in de stack frame van de huidige functie kan reserveren.

2

Welke smart pointer moet je gebruiken om een waarde op de heap te alloceren met één enkele eigenaar?

Antwoord

Box<T> is de eenvoudigste smart pointer voor heap-allocatie. Het garandeert één enkele eigenaar en geeft het geheugen automatisch vrij wanneer de Box buiten scope raakt. Box is handig voor types met een onbekende grootte bij het compileren, voor grote structuren die niet op de stack gekopieerd moeten worden, of voor recursieve types.

3

Wat is het RAII-patroon (Resource Acquisition Is Initialization) in Rust?

Antwoord

RAII is een patroon waarbij resources (geheugen, bestanden, verbindingen) worden verkregen tijdens het aanmaken van een object en automatisch worden vrijgegeven bij de vernietiging ervan. In Rust gebeurt dit via de Drop-trait, die automatisch wordt aangeroepen wanneer een waarde buiten de scope raakt. Dit patroon zorgt ervoor dat geen enkele resource wordt vergeten en voorkomt geheugenlekken.

4

Wanneer wordt de Drop-trait automatisch aangeroepen in Rust?

5

Hoe kan een geheugenlek (memory leak) worden veroorzaakt met Rc<T> in Rust?

+17 gespreksvragen

Beheers Rust voor je volgende gesprek

Krijg toegang tot alle vragen, flashcards, technische tests, code review-oefeningen en gespreksimulatoren.

Begin gratis