访问边界外的数组元素是否会破坏它

Could accessing array element outside boundary corrupt it

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

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();

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

could accessing array[15] result in the corruption of the elements between 0-10?

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