Computer >> Máy Tính >  >> Lập trình >> C ++

Lỗi phân đoạn có thực sự là hành vi không xác định trong C ++ không?

Các trường hợp xảy ra lỗi phân đoạn là tạm thời. Chúng không phải lúc nào cũng dẫn đến lỗi phân đoạn nhưng cũng có thể chạy chính xác (hoặc ít nhất là có vẻ như vậy). Ví dụ:hãy xem xét đoạn mã sau -

#include<iostream>
int main() {
    int arr[2];
    arr[0] = 0;
    arr[1] = 1;
    arr[2] = 2; // Undefined behaviour
    arr[3] = 3; // Undefined behaviour
}

Mã này có thể chạy chính xác hoặc dẫn đến lỗi phân đoạn. Nó không thực sự được định nghĩa và phụ thuộc vào việc triển khai. Bạn có thể đọc thêm về hành vi không xác định tại đây - https://blog.llvm.org/2011/05/what-every-c-programmer-should-know.html