In C non c'è alcun controllo su "dove" vai a scrivere.
Puoi scrivere "fuori" dalla memoria allocata e quindi in una zona di memoria che non è "sicura".
Può succedere che "sporchi" altre variabili del programma, può avvenire un crash ... non si può dire.
L'allocazione *garantisce* che la memoria in cui scrivi sia dedicata al tuo programma.