Objeto C ++ criado com novo, destruído com free (); Quão ruim é isso?

Estou trabalhando na modificação de um programa C ++ relativamente grande, onde, infelizmente, nem sempre é claro se alguém antes de mim usava a sintaxe C ou C ++ (isso é no departamento de engenharia elétrica de uma universidade, e nós, EEs, somos sempre tentados a usar C para tudo) e, infelizmente, neste caso, as pessoas podem realmente se safar).

No entanto, se alguém criar um objeto:

Packet* thePacket = new Packet();

Importa se é destruído comdelete thePacket; oufree(thePacket); ?

Sei que a exclusão chama o destruidor enquanto free () não, mas o Packet não possui um destruidor. Estou tendo um momento terrível preso em um pântano de gerenciamento de memória aqui e estou pensando que esse pode ser um dos muitos problemas.

questionAnswers(6)

yourAnswerToTheQuestion