Well, everyone's told you about new
not initialising memory etc, but they forgot about value-initialization syntax:
char *buffer = new char[size]();
So I would argue that you always use new
. If you want to initialise the memory, use the above syntax. Otherwise, drop the parentheses.