Использование ключевого слова «new» будет выделять память в куче, так же, как «malloc» в C. Чтобы вернуть эту память, когда вы закончили ее использовать, вы должны сделать «delete» вуказатель, возвращаемый из 'new'.
Это легко, когда жизнь какого-либо объекта не выходит за пределы функции, в которой он был создан, но становится более сложной, когда эти объекты возвращаются или добавляются в коллекции..