访问数组中超出范围的元素

问题描述 投票:0回答:1

我有一个包含 6 个元素的数组,但是当我尝试访问 arr[6] 时,它给了我一个垃圾值而不是数组溢出错误。这背后的原因是什么?

#include <iostream>

#include <bits/stdc++.h>

using namespace std;

int main()
{

    int arr[] = {3, 2, 1, 56, 10000, 167};
    cout << "Value: " << arr[6];
    
    return 0;
}
c++
1个回答
0
投票

C 和 C++ 不对数组执行边界检查。这就是它们速度快的部分原因。

但是,如果您确实访问了数组末尾,则会在代码中触发未定义的行为。它可能会崩溃,可能会输出奇怪的结果,或者可能看起来工作正常。

© www.soinside.com 2019 - 2024. All rights reserved.