new, должно выполняться с помощью delete, а памяти, выделенной функцией
malloc — посредством функции free.
delete n; delete m; delete [] q; free (u);
Если память выделялась с помощью new[], для освобождения памяти необходимо применять delete[].
Размерность массива при этом не указывается.
Если квадратных скобок нет, то сообщение об ошибке не выдается, но помечен как свободный будет только первый элемент массива, а остальные окажутся недоступны для дальнейших операций.
Такие ячейки памяти называются мусором.
Если переменная-указатель выходит из области своего действия, отведенная под нее память освобождается.
Следовательно, динамическая переменная, на которую ссылался указатель, становится недоступной.
При этом память из-под самой динамической переменной не освобождается.