Your code is syntactically correct C ++ if it is rather weird and I don't think it does what you intended:
new char['1', '2', '3', '4']evaluated as new char['4']due to the operation of the operator comma. (Previous elements are evaluated from left to right, but the value of the expression is the right-most element.)
So your statement is equivalent char *p_c = new char['4'];
'4' - char , , (ASCII, EBCDIC & c. , , .).
, '4' size_t. ASCII 52.