访问边界外的数组元素是否会破坏它
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 之前完好无损的数组元素的损坏。
是否有可能在其边界之外访问数组会破坏其现有元素
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 之前完好无损的数组元素的损坏。