Ci sono molte cose che il compilatore permette, ma non per questo si debbono fare.
Ad esempio:
codice:
int qualcosa = 0;
delete &qualcosa;
E comunque solo il Gcc / G++ (per quel che ne so) supporta il C99 (e lo abilità per default in barba allo standard C++).