C Academy · Pelajaran

Peruntukan Memori Dinamik

Terokai fungsi seperti malloc, calloc, realloc dan free untuk mengurus memori secara dinamik.

Pelajaran 2 daripada 310 langkah

Peruntukan Memori Dinamik ialah pelajaran C Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 3. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran C Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus C Academy merangkumi sejumlah 3 pelajaran.

Peruntukan Memori Dinamik

Dalam C, peruntukan memori dinamik membolehkan kita memperuntukkan memori pada masa jalan dan bukannya pada masa kompilasi.

Dalam pelajaran ini, anda akan mempelajari:

  • Cara memperuntukkan memori menggunakan malloc, calloc dan realloc.
  • Cara membebaskan memori yang diperuntukkan menggunakan free.
  • Cara mengelakkan kebocoran memori.
Peruntukan Memori Dinamik — ilustrasi 1

Apakah Peruntukan Memori Dinamik?

Biasanya, memori untuk pemboleh ubah diperuntukkan pada masa kompilasi.

Dengan peruntukan memori dinamik, memori diperuntukkan semasa pelaksanaan atur cara menggunakan fungsi khas.

Ini berguna untuk mengurus tatasusunan atau struktur yang saiznya tidak diketahui pada masa kompilasi.

Memperuntukkan Memori dengan malloc()

Fungsi malloc memperuntukkan memori tetapi tidak memulakannya.

Sintaks:

ptr = (int*) malloc(size * sizeof(int));

Fungsi ini mengembalikan penuding kepada memori yang diperuntukkan atau NULL jika peruntukan gagal.

Contoh: Menggunakan malloc()

Atur cara ini menunjukkan cara memperuntukkan memori menggunakan malloc.

#include <stdio.h>
#include <stdlib.h>

int main() {
    int *ptr = (int*) malloc(5 * sizeof(int));
    if (ptr == NULL) {
        printf("Memory allocation failed!\n");
        return 1;
    }
    for (int i = 0; i < 5; i++) {
        ptr[i] = i * 10;
        printf("%d ", ptr[i]);
    }
    free(ptr);
    return 0;
}

Memperuntukkan Memori dengan calloc()

Fungsi calloc memperuntukkan memori dan memulakannya kepada sifar.

Sintaks:

ptr = (int*) calloc(num_elements, sizeof(int));

Fungsi ini mengembalikan penuding kepada memori yang diperuntukkan atau NULL jika peruntukan gagal.

Contoh: Menggunakan calloc()

Atur cara ini menunjukkan cara memperuntukkan memori menggunakan calloc.

#include <stdio.h>
#include <stdlib.h>

int main() {
    int *ptr = (int*) calloc(5, sizeof(int));
    if (ptr == NULL) {
        printf("Memory allocation failed!\n");
        return 1;
    }
    for (int i = 0; i < 5; i++) {
        printf("%d ", ptr[i]); // All elements initialized to 0
    }
    free(ptr);
    return 0;
}

Mengubah Saiz Memori dengan realloc()

Fungsi realloc mengubah saiz memori yang telah diperuntukkan.

Sintaks:

ptr = realloc(ptr, new_size * sizeof(int));

Fungsi ini mengembalikan penuding kepada blok memori baharu.

Membebaskan Memori dengan free()

Memori yang diperuntukkan hendaklah dibebaskan menggunakan free() untuk mengelakkan kebocoran memori.

Sintaks:

free(ptr);

Selepas dibebaskan, penuding itu tidak boleh dicapai.

Ringkasan

Dalam pelajaran ini, anda telah mempelajari:

  • Cara memperuntukkan memori menggunakan malloc dan calloc.
  • Cara memperuntukkan semula memori menggunakan realloc.
  • Cara membebaskan memori menggunakan free untuk mengelakkan kebocoran memori.

Seterusnya, kita akan meneroka tatasusunan penuding dan penuding fungsi dalam C!

Peruntukan Memori Dinamik — ilustrasi 10
Percuma untuk bermula

Pelajari C dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
39
Pelajaran
144

Soalan Lazim

Adakah pelajaran “Peruntukan Memori Dinamik” percuma?

Ya — teks penuh “Peruntukan Memori Dinamik” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus C Academy, tingkat taraf kepada CoddyKit PRO. Kursus C Academy merangkumi sejumlah 3 pelajaran.

Apakah yang akan saya pelajari dalam “Peruntukan Memori Dinamik”?

Terokai fungsi seperti malloc, calloc, realloc dan free untuk mengurus memori secara dinamik. Anda berlatih C Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan C Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran C Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 3.

Berapa lamakah pelajaran “Peruntukan Memori Dinamik” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran C Academy ini?

Ya. Setiap pelajaran C Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Pengenalan kepada Penuding
  2. Peruntukan Memori Dinamik
  3. Tatasusunan Penuding dan Penuding Fungsi
← Kembali ke C Academy