可以访问边界外部的数组元素破坏它

时间:2019-06-12 09:36:18

标签: c++ arrays undefined-behavior

是否有可能在其边界之外访问数组破坏其现有元素

MyObject* array[10];

for(int i=0; i<10; i++)
{
    array[i] = nullptr;
}
array[1] = new MyObject();
array[8] = new MyObject();
array[15] = new MyObject();

访问array [15]会导致0-10之间的元素损坏吗?

1 个答案:

答案 0 :(得分:7)

  

访问array[15]会导致0-10之间的元素损坏吗?

是的。这是未定义的行为,UB的本质是任何事情都可能发生。特别是,通常无法对可能发生什么或更有可能发生的事情进行推理。可以是任何东西,包括在UB之前完好无损的某些数组元素的损坏。