C xatolar
Xatolar
Hatto tajribali C dasturchilari ham xato qiladi. Asosiysi — ularni topish va tuzatishni o‘rganish!
Bu sahifalarda nima noto‘g‘ri ketayotganini va uni qanday tuzatishni tushunishingizga yordam beradigan keng tarqalgan xatolar hamda nosozliklarni tuzatish (debugging) bo‘yicha foydali maslahatlar yoritilgan.
Kompilyatsiya vaqtidagi keng tarqalgan xatolar
Kompilyatsiya vaqtidagi xatolar — dasturingizning kompilyatsiya qilinishiga to‘sqinlik qiladigan xatolar.
1) Nuqtali vergul tushib qolgan:
Misol
#include <stdio.h>
int main() {
int x = 5
printf("%d", x);
return 0;
}
Natija:
error: expected ',' or ';' before 'printf'
2) E’lon qilinmagan o‘zgaruvchilardan foydalanish:
Misol
#include <stdio.h>
int main() {
printf("%d", myVar);
return 0;
}
Natija:
error: 'myVar' undeclared
3) Tiplarning mos kelmasligi (masalan, int o‘zgaruvchisiga string qiymatini o‘zlashtirish):
Misol
#include <stdio.h>
int main() {
int x = "Hello";
return 0;
}
Natija:
error: initialization makes integer from pointer without a cast
Bajarilish vaqtidagi keng tarqalgan xatolar
Bajarilish vaqtidagi xatolar dastur kompilyatsiya qilinsa-da, ishdan chiqqanda yoki kutilmagan tarzda ishlaganda yuz beradi.
1) Nolga bo‘lish:
Misol
#include <stdio.h>
int main() {
int x = 10;
int y = 0;
int result = x / y;
printf("%d\\n", result); // not possible
return 0;
}
2) Massiv chegarasidan tashqaridagi elementlarga murojaat qilish:
Misol
#include <stdio.h>
int main() {
int numbers[3] = {1, 2, 3};
printf("%d\\n", numbers[8]); // element does not exist
return 0;
}
3) Bo‘shatilgan xotiradan foydalanish:
Misol
#include <stdio.h>
#include <stdlib.h>
int main() {
int* ptr = malloc(sizeof(int));
*ptr = 10;
free(ptr);
printf("%d\\n", *ptr); // Undefined behavior - accessing memory that was freed
return 0;
}
Xatolarning oldini olish uchun foydali odatlar
- O‘zgaruvchilaringizni har doim initsializatsiya qiling
- Ma’noli o‘zgaruvchi nomlaridan foydalaning
- Kodingizni toza saqlang va tartibli bo‘lishi uchun chekinishlardan (indentation) foydalaning
- Funksiyalarni qisqa va bitta vazifaga yo‘naltirilgan holda yozing
- Sikllar yoki shartlar kutilganidek ishlayotganini tekshiring
- Xato xabarlarini diqqat bilan o‘qing — ular ko‘pincha muammo aynan qayerdaligini ko‘rsatadi
Keyingi bobda kodingizni qanday debug qilishni — C dasturingizdagi xatolarni (bug) qanday topish va tuzatishni o‘rganasiz.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
