Array has changed during ranged-for iteration!?

You can fix this from happening by just using a normal for loop instead of a ranged for:

int n = array.Num();
for(int i = 0; i < n; i++)
{

}