What's the difference between new char[10] and new char(10)

In C++, what's the difference between

char *a = new char[10];

and

char *a = new char(10);

Thanks!


The first allocates an array of 10 char's. The second allocates one char initialized to 10.

Or:

The first should be replaced with std::vector<char>, the second should be placed into a smart pointer.


new char[10];

dynamically allocates a char[10] (array of char, length 10), with indeterminate values, while

new char(10);

again, dynamically allocates a single char, with an integer value of 10.