Я вижу, что в С++ существует несколько способов выделения и освобождения данных, и я понимаю, что при вызове malloc вы должны называть free, а когда вы используете оператор new, вы должны соединить с delete, и это (например, вызов free() на то, что было создано с помощью оператора new), но я не понимаю, когда я должен использовать malloc/free и когда я должен использовать new/delete в моих программах реального мира.
Если вы специалист по С++, пожалуйста, дайте мне знать какие-либо эмпирические правила или соглашения, которые вы придерживаетесь в этом отношении.