是否有可能在其边界之外访问数组破坏其现有元素
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之间的元素损坏吗?
答案 0 :(得分:7)
访问
array[15]
会导致0-10之间的元素损坏吗?
是的。这是未定义的行为,UB的本质是任何事情都可能发生。特别是,通常无法对可能发生什么或更有可能发生的事情进行推理。可以是任何东西,包括在UB之前完好无损的某些数组元素的损坏。