C++ xatolar


ULASHISH

Xatolar

Hatto tajribali C++ dasturchilari ham xato qiladi. Asosiysi — ularni qanday topish va tuzatishni o‘rganish!

Bu sahifalarda nima noto‘g‘ri ketayotganini va uni qanday tuzatishni tushunishga yordam beradigan keng tarqalgan xatolar hamda foydali debugging maslahatlari yoritilgan.


Keng tarqalgan kompilyatsiya vaqtidagi xatolar

Kompilyatsiya vaqtidagi xatolar — dasturingiz kompilyatsiya qilinishiga to‘sqinlik qiladigan xatolar.

1) Nuqtali vergul tushib qolgan:

int x = 5

Natija:

error: expected ',' or ';' before 'cout'
O‘zingiz sinab ko‘ring »

2) E’lon qilinmagan o‘zgaruvchilardan foydalanish:

cout << myVar;

Natija:

error: 'myVar' was not declared in this scope
O‘zingiz sinab ko‘ring »

3) Tiplar mos kelmasligi (masalan, int o‘zgaruvchisiga string qiymat berishga urinish):

int x = "Hello";

Natija:

error: invalid conversion from 'const char*' to 'int'
O‘zingiz sinab ko‘ring »


Keng tarqalgan bajarilish vaqtidagi xatolar

Bajarilish vaqtidagi xatolar dastur kompilyatsiya qilinsa-yu, lekin ishdan chiqsa yoki kutilmagan tarzda ishlasa yuz beradi.

1) Nolga bo‘lish:

int a = 10; int b = 0; int result = a / b;  // not possible cout << result;

2) Massiv chegarasidan tashqaridagi elementlarga murojaat qilish:

int numbers[3] = {1, 2, 3}; cout << numbers[8];  // element does not exist

3) O‘chirilgan xotiradan foydalanish (osilib qolgan ko‘rsatkich — dangling pointer):

int* ptr = new int(10); delete ptr; cout << *ptr;  // invalid

Xatolarning oldini olish uchun foydali odatlar

  • O‘zgaruvchilarga doim boshlang‘ich qiymat bering
  • Mazmunli 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 aytib beradi

Keyingi bobda kodingizni qanday debugging qilishni — dasturingizdagi xatolarni (bug) qanday topish va tuzatishni o‘rganasiz.



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!