First, let me summarize what both do: deletecalls the destructor for one object and frees up memory; delete[]calls the destructor of a certain number of objects and frees memory.
It would be possible to collapse them into the same operation: “calls the destructor of a certain number of objects and frees memory”. After all, this is a number.
Both deleteand delete[]are working with a pointer. Like this:
foo* ptr;
. , , delete. . . . - . , new[] .
++ " , ", : delete , new doesn ' t .