Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Hành vi không xác định (Undefined Behavior) trong C/C++

Một số code gây UB (Undefined Behavior):

  1. Chia cho 0: int z = 10/0; → Runtime error
  2. Biến chưa khởi tạo: bool x; if(x)... → Kết quả tùy compiler
  3. Truy cập con trỏ NULL: int* p=NULL; *p; → Segfault
  4. Vượt giới hạn mảng: int a[10]; a[10]=1; → UB (có thể crash, có thể ra giá trị rác)
  5. Tràn số nguyên có dấu: INT_MAX + 1 → Về INT_MIN
  6. Sửa string literal: char* s="Hello"; s[2]='x'; → Crash (ghi vào read-only memory)