Единственный раз, когда вы должны использовать delete[]
, это когда вы выделяете new[]
, но это не то, что вы делаете. Вы используете operator new
, а это не то, что вы должны использовать для общего назначения массивов. Вместо этого используйте new[]
. Или используйте вектор.
Кроме того, хотя вы передаете myArray
в MyFunction2
как array
, а затем присваиваете новое значение для array
внутри функции, которое не меняет значение myArray
в вызывающей стороне. Эта переменная сохраняет свое исходное нулевое значение, поэтому ваш вызов delete[]
ничего не делает. Вы можете изменить array
так, чтобы он передавался по ссылке, а не по значению, поэтому изменения в нем будут отражены в его фактическом параметре в вызывающей стороне.