訪問越界索引

訪問超出陣列範圍的索引(或標準庫容器,因為它們都使用原始陣列實現) 是未定義的行為 : **

 int array[] = {1, 2, 3, 4, 5};
 array[5] = 0;  // Undefined behavior

它是允許有一個指標指向陣列的結束(在這種情況下 array + 5),你就不能解引用它,因為它不是一個有效的元素。

 const int *end = array + 5;  // Pointer to one past the last index
 for (int *p = array; p != end; ++p)
   // Do something with `p`

通常,不允許建立越界指標。指標必須指向陣列中的元素,或者指向結尾的元素。