Не зная, какой язык вы используете, подробности сложны.Однако до тех пор, пока вы не измените ссылку между выделением и освобождением, не имеет значения, где освобождается память.Однако, если вы измените, какой адрес памяти адресуется между выделением и освобождением (без освобождения до изменения), у вас будет утечка памяти.
В C ++, например ...
int main(){
int* j = new int[10];
j = new int[10];
delete j;
}
Это будет утечка памяти, так как первый массив не удален.Это, очевидно, упрощенный пример, являющийся одномерным и не использующий функции.