Vì lý do kiểm tra, tôi muốn tạo ra một phân chia bằng 0 trong mã C++ của tôi. Tôi đã viết mã này:Làm thế nào để gây ra một phân chia cố ý bằng không?
int x = 9;
cout << "int x=" << x;
int y = 10/(x-9);
y += 10;
Tôi thấy "int = 9" được in trên màn hình nhưng ứng dụng không bị lỗi. Có phải vì một số tối ưu hóa trình biên dịch (tôi biên dịch với gcc)? Điều gì có thể là lý do?
Tại sao bạn không sử dụng 'abort()' thay thế? Một tùy chọn khác mà không thể được tối ưu hóa đi là viết cho một con trỏ NULL. –
@JanHudec Trong trường hợp của tôi, tôi cần một bộ phận cụ thể bằng 0. Đó là một mã RT nhúng và tôi muốn tái tạo hành vi của hệ thống với một loại lỗi cụ thể. Đôi khi những thứ như thế này xảy ra khi bạn điều tra lỗi trong các hệ thống nhúng. – FireAphis