Memori Stack vs. Heap
Termasuk bagian Logika dan Alur dalam perjalanan C di Coddy. Pelajaran 31 dari 63.
Saat program C milikmu berjalan, program tersebut menggunakan dua area memori yang berbeda: stack dan heap. Memahami perbedaan antara area memori ini sangat penting untuk pemrograman C yang efektif, terutama saat bekerja dengan pointer dan alokasi memori dinamis.
stack digunakan untuk alokasi memori statis. Di sinilah variabel lokal, parameter fungsi, dan informasi pemanggilan fungsi disimpan. stack dikelola secara otomatis oleh sistem. Saat kamu mendeklarasikan variabel lokal, memori dialokasikan di stack, dan saat variabel tersebut berada di luar cakupan, memori itu otomatis dibebaskan.
void function() {
int x = 10; // Dialokasikan di stack
char arr[100]; // Juga dialokasikan di stack
// Memori otomatis dibebaskan saat fungsi selesai
}heap digunakan untuk alokasi memori dinamis. Ini adalah kumpulan memori yang lebih besar dan dapat kamu minta selama program berjalan.
Tidak seperti stack, heap memerlukan pengelolaan manual, kamu harus meminta memori secara eksplisit lalu membebaskannya setelah selesai digunakan. Ini memberimu lebih banyak kendali, tetapi juga lebih banyak tanggung jawab.
Perbedaan utamanya adalah pengelolaannya: memori stack dikelola secara otomatis dan ukurannya terbatas, sedangkan memori heap dikelola secara manual dan ukurannya jauh lebih besar. Dalam pelajaran berikutnya, kamu akan belajar cara menggunakan memori heap dengan fungsi seperti malloc() dan free().
Coba sendiri
Pelajaran ini tidak memiliki tantangan kode.
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Dasar-Dasar Pointer
Apa Itu Pointer?Mendeklarasikan PointerOperator Address-Of (&)Operator Dereference (*)Pointer NULLRekap: Dasar-Dasar Pointer4Proyek: Utilitas Teks Sederhana
Gambaran Umum ProyekMenghitung Karakter2Pointer dan array
Nama array sebagai pointerElemen array dan pointerAritmetika pointerMembandingkan pointerRangkuman: Menelusuri array dengan pointer5Pointer dan Fungsi
Penerusan dengan NilaiMeneruskan Pointer ke FungsiMengubah Variabel melalui PointerContoh Klasik: SwapMeneruskan Array ke FungsiRingkasan: Argumen Pointer Fungsi8Struct dan Pointer
Pointer ke StructOperator Panah (->)Mengirim Struct berdasarkan NilaiMengirim Pointer StructAlokasi Dinamis StructUlasan: Memodifikasi Struct dengan Pointer11Tantangan Rangkuman Akhir
Rangkuman: Penggabungan string DinamisRangkuman: array berisi structRangkuman: Penghitung Frekuensi Kata3Array char dan String
String sebagai array charPenanda akhir nullInput String dengan scanfMenggunakan strlen()Menggunakan strcpy()Menggunakan strcat()Menggunakan strcmp()Ulasan: Fungsi String DasarLatihan sendiri: Compiler C online