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

Truy cập mảng ngoài giới hạn trong C / C ++


Trong một ngôn ngữ như Java, một ngoại lệ như java.lang.ArrayIndexOutOfBoundsException có thể xảy ra nếu một mảng được truy cập ngoài giới hạn. Nhưng không có chức năng như vậy trong C và hành vi không xác định có thể xảy ra nếu một mảng được truy cập ngoài giới hạn.

Một chương trình chứng minh điều này trong C được đưa ra như sau.

Ví dụ

#include <stdio.h>
int main() {
   int arr[] = {1,2,3,4,5};
   printf("The elements of array : ");
   for(int i = 0; i<6; i++)
   printf(" %d",arr[i]);
   return 0;
}

Đầu ra

Kết quả của chương trình trên như sau.

The elements of array : 1 2 3 4 5 32765

Bây giờ chúng ta hãy hiểu chương trình trên.

Mảng arr chỉ được gán các giá trị cho đến chỉ số con 4. Vì vậy, khi các phần tử của mảng được in, arr [5] sẽ dẫn đến một giá trị rác. Đoạn mã hiển thị điều này như sau.

int arr[] = {1,2,3,4,5};
printf("The elements of array : ");
for(int i = 0; i<6; i++)
printf(" %d",arr[i]);