Объект C ++ создан с помощью new, уничтожен с помощью free (); Насколько это плохо?

Я работаю над изменением относительно большой программы на C ++, где, к сожалению, не всегда ясно, использовал ли кто-то до меня синтаксис C или C ++ (это на кафедре электротехники в университете, и мы, EE, всегда склонны использовать C для всего, и, к сожалению, в этом случае люди действительно могут получить прочь с ним).

Однако, если кто-то создаст объект:

Packet * thePacket = new Packet ();

Имеет ли значение, будет ли он уничтожен с помощью delete thePacket; или free (thePacket); ?

Я понимаю, что delete вызывает деструктор, а free () - нет, но Packet не имеет деструктора. Я ужасно застрял здесь в болоте управления памятью, и я думаю, что это может быть одной из многих проблем.

37
задан Ayxan 11 November 2019 в 11:59
поделиться