Нет, приведенный выше код копирует oldArray
в newArray
. Любое изменение oldArray
(включая его освобождение) не повлияет на newArray
и ни в коем случае не приведет к исключению границ.
Наиболее вероятная причина в том, что oldArray
равен nil
в этой точке, поэтому newArray
- это пустой массив, когда вы этого не ожидаете. С другой стороны, oldArray
может содержать не так много элементов, как вы думаете. Исключение границ означает, что вы читаете за концом массива. Он не имеет ничего общего с управлением памятью.