No. They are far from the same.
This:
int *p;
*p = 10;
Declares a (uninitialized) pointer to int named p
. Then assignes the value 10
to what p
points to.
This is ” undefined behaviour” since p
is uninitialized.
This:
int *q = new() int(10);
Declares a int pointer q
and initializes it to point to the storage allocated by new
which has allocated space for 10 int’s (if we disregard the syntactically incorrect “()” after new).
To summarize: both – as written – are invalid, broken code, but not the same.
Note: new(...)
is “placement new” which is not what you want here.
solved what is the different between ‘new()’ int and ‘int *p’ [closed]