Rust

Memory Management

Stack vs heap, allocator, Drop trait, RAII, memory leak akibat siklus Rc, Pin<T>

20 pertanyaan wawancaraยท
Senior
1

Di Rust, di mana variabel lokal bertipe primitif seperti i32 atau bool disimpan?

Jawaban

Variabel lokal bertipe primitif disimpan di stack. Stack menyediakan alokasi dan dealokasi yang sangat cepat karena bekerja berdasarkan prinsip LIFO (Last In, First Out). Tipe primitif memiliki ukuran yang diketahui saat kompilasi, sehingga compiler dapat mencadangkan ruang yang diperlukan pada stack frame fungsi saat ini.

2

Smart pointer mana yang harus digunakan untuk mengalokasikan sebuah nilai di heap dengan satu pemilik tunggal?

Jawaban

Box<T> adalah smart pointer paling sederhana untuk alokasi di heap. Ia menjamin kepemilikan tunggal dan secara otomatis membebaskan memori saat Box keluar dari scope. Box berguna untuk tipe dengan ukuran yang tidak diketahui saat kompilasi, untuk struktur besar yang tidak ingin disalin di stack, atau untuk tipe rekursif.

3

Apa itu pola RAII (Resource Acquisition Is Initialization) di Rust?

Jawaban

RAII adalah pola di mana sumber daya (memori, file, koneksi) diperoleh saat pembuatan objek dan dilepaskan secara otomatis saat objek dihancurkan. Di Rust, hal ini dilakukan melalui trait Drop yang dipanggil secara otomatis ketika sebuah nilai keluar dari scope. Pola ini memastikan tidak ada sumber daya yang terlupakan dan mencegah kebocoran memori.

4

Kapan trait Drop dipanggil secara otomatis di Rust?

5

Bagaimana kebocoran memori (memory leak) dapat terjadi dengan Rc<T> di Rust?

+17 pertanyaan wawancara

Kuasai Rust untuk wawancara berikutnya

Akses semua pertanyaan, flashcards, tes teknis, latihan code review dan simulator wawancara.

Mulai gratis