Ralat Masa Jalan yang Biasa
Kenal pasti dan cegah kesalahan pembahagian, limpahan penimbal dan kebocoran memori.
Ralat Masa Jalan yang Biasa 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.
Ralat Masa Jalan yang Biasa dalam C
Ralat masa jalan berlaku apabila atur cara mengalami tingkah laku yang tidak dijangka dan sering menyebabkan atur cara terhenti.
Dalam pelajaran ini, anda akan mempelajari:
- Cara kerosakan pembahagian berlaku dan cara membaikinya.
- Cara limpahan penimbal menyebabkan kelemahan keselamatan.
- Cara kebocoran memori menjejaskan prestasi dan cara mengelakkannya.

Apakah Kerosakan Pembahagian?
Kerosakan pembahagian berlaku apabila atur cara cuba mengakses memori yang tidak dibenarkan untuk diaksesnya.
Punca:
- Menyahrujuk penuding yang belum dimulakan atau NULL.
- Mengakses memori melebihi sempadan tatasusunan.
- Mengubah suai memori baca sahaja.
Contoh: Kerosakan Pembahagian
Atur cara ini menyebabkan kerosakan pembahagian dengan menyahrujuk penuding NULL.
#include <stdio.h>
int main() {
int *ptr = NULL;
printf("%d\n", *ptr); // Segmentation fault
return 0;
}Mencegah Kerosakan Pembahagian
Petua untuk mengelakkan kerosakan pembahagian:
- Sentiasa mulakan penuding sebelum menggunakannya.
- Semak sama ada penuding ialah NULL sebelum menyahrujuknya.
- Gunakan semakan sempadan tatasusunan.
Apakah Limpahan Penimbal?
Limpahan penimbal berlaku apabila data melebihi ruang memori yang diperuntukkan.
Contoh:
char arr[5]; gets(arr);
Keadaan ini boleh menyebabkan tingkah laku yang tidak dapat diramalkan dan kelemahan keselamatan.
Contoh: Limpahan Penimbal
Atur cara ini menunjukkan limpahan penimbal menggunakan gets().
#include <stdio.h>
int main() {
char buffer[5];
printf("Enter a string: ");
gets(buffer); // Unsafe, may cause buffer overflow
printf("You entered: %s\n", buffer);
return 0;
}Mencegah Limpahan Penimbal
Untuk mencegah limpahan penimbal:
- Gunakan
fgets()dan bukannyagets(). - Sahkan saiz input sebelum menulis ke dalam tatasusunan.
- Gunakan fungsi yang selamat terhadap memori seperti
snprintf().
Kebocoran Memori
Kebocoran memori berlaku apabila memori yang diperuntukkan tidak dibebaskan, lalu menyebabkan pembaziran memori.
Punca:
- Terlupa menggunakan
free()selepasmalloc(). - Menulis ganti penuding tanpa membebaskan peruntukan lama.
Ringkasan
Dalam pelajaran ini, anda telah mempelajari:
- Cara kerosakan pembahagian berlaku dan cara mencegahnya.
- Cara limpahan penimbal menyebabkan isu keselamatan.
- Cara kebocoran memori membazirkan sumber sistem.
Seterusnya, kita akan meneroka strategi pengendalian pengecualian dalam C!

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 “Ralat Masa Jalan yang Biasa” percuma?
Ya — teks penuh “Ralat Masa Jalan yang Biasa” 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 “Ralat Masa Jalan yang Biasa”?
Kenal pasti dan cegah kesalahan pembahagian, limpahan penimbal dan kebocoran memori. 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 “Ralat Masa Jalan yang Biasa” 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
- Penyahpepijatan dengan GDB
- Ralat Masa Jalan yang Biasa
- Pengendalian Pengecualian dalam C