JavaScript is required

Điều gì sẽ xảy ra nếu trong chương trình C, bạn gán giá trị cho một phần tử mảng có chỉ số vượt quá kích thước của mảng?

A.

Phần tử sẽ được đặt thành 0.

B.

Trình biên dịch sẽ báo lỗi.

C.

Chương trình có thể bị sập nếu một số dữ liệu quan trọng bị ghi đè

D.

Kích thước mảng sẽ tăng lên một cách thích hợp

Trả lời:

Đáp án đúng: C


Trong C, khi bạn truy cập một phần tử mảng vượt quá kích thước đã khai báo, điều này dẫn đến hành vi không xác định. Chương trình không báo lỗi biên dịch (compile-time error) hay tự động điều chỉnh kích thước mảng. Thay vào đó, chương trình có thể hoạt động không ổn định và thậm chí bị sập (crash). Lý do là vì việc ghi vào vùng nhớ nằm ngoài phạm vi mảng có thể ghi đè lên các dữ liệu quan trọng khác của chương trình (như các biến khác, con trỏ, mã lệnh), gây ra lỗi khó lường và làm chương trình chấm dứt hoạt động bất ngờ. Phương án A sai vì phần tử không tự động được đặt thành 0. Phương án B sai vì trình biên dịch C thường không phát hiện lỗi này ở giai đoạn biên dịch. Phương án D sai vì kích thước mảng không tự động tăng lên.

Câu hỏi liên quan