Trong Java, ngoại lệ java.lang.ArrayIndexOutOfBoundsException xảy ra nếu truy cập mảng vượt giới hạn. Nhưng C không có cơ chế này, hành vi không xác định (undefined behaviour) xảy ra nếu truy cập mảng vượt giới hạn.
Chương trình minh họa C:
Ví dụ
#include <stdio.h>
int main() {
int arr[] = {1,2,3,4,5};
printf("Các phần tử mảng: ");
for(int i = 0; i<6; i++)
printf(" %d", arr[i]);
return 0;
}Kết quả
Đầu ra chương trình:
Các phần tử mảng: 1 2 3 4 5 32765
Hiểu chương trình:
Mảng arr chỉ gán giá trị đến chỉ số 4. In phần tử, arr[5] cho giá trị rác (garbage). Đoạn mã:
int arr[] = {1,2,3,4,5};
printf("Các phần tử mảng: ");
for(int i = 0; i<6; i++)
printf(" %d", arr[i]);