Possible Duplicate:
is this a variable or function
I mistakenly used something like:
int *arr = new int(100);
and it passes compile, but I knew this is wrong. It should be
int *arr = new int[100];
What does the compiler think it is when I wrote the wrong one?
The first line allocates a single
intand initializes it to100. Think of theint(100)as a constructor call.Since this is a scalar allocation, trying to access
arr[1]or to free the memory usingdelete[]would lead to undefined behaviour.