What happens when you try to access the 11th element of an array with a size of 10 in the C language?

4 phương ánCó giải thích

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở
Đáp án đúng: "The program compiles and runs without any errors, but the behavior is undefined". C đổi an toàn lấy tốc độ: chỉ số mảng chỉ là phép cộng địa chỉ rồi lấy giá trị, không kèm mã kiểm biên nào, nên chương trình vẫn dịch xong và vẫn chạy, chỉ là nó đọc ghi vào vùng không thuộc mảng. Chuẩn gọi đó là hành vi không xác định: có thể ra số rác, có thể phá biến khác, có thể gây lỗi truy cập, và kết quả đổi theo máy lẫn trình dịch. Câu "The program compiles and runs without any errors, and the 11th element is accessed" sai vì phần tử thứ mười một không tồn tại, thứ bị chạm tới là ô nhớ kế bên. Câu "The program fails to compile due to a compilation error" sai vì chỉ số thường chỉ biết lúc chạy. Câu "The program compiles and runs without any errors, and the 11th element is automatically added to the array" sai vì mảng trong C có kích thước cố định lúc khai báo.

Cùng phần 7

Xuất hiện trong 1 bộ đề