No ... quel codice è sbagliato.

Non è che non hai problemi ma il fatto è che scrivi in memoria oltre lo spazio riservato alla variabile. Se la memoria che "sporchi" non è importante ai fini dell'esecuzione del programma, allora non succede nulla e (apparentemente) ti sembra che il programma sia a posto.
Altrimenti hai un crash (ed è la situazione migliore dato che ti evidenzia il problema).

Con la new char devi indicare quanti caratteri riservare ...

Non so se hai studiato il C, ma non è differente a parte il fatto che allochi la memoria con funzioni apposite e non con il new.