int *p=(int * )malloc(sizeof(int));
delete p;
Когда мы выделяем память с помощью malloc, мы должны освобождать ее с помощью free, а когда мы выделяем с помощью new в C++, мы должны освобождать ее с помощью удаления.
Но если мы выделяем память с помощью malloc, а затем используем удаление, то должна быть какая-то ошибка. Но в приведенном выше коде нет ошибок или предупреждений на C++.
Кроме того, если мы реверсируем и выделяем с помощью new и освобождаем с помощью free, то также нет ошибки или предупреждения.
Почему это так?