Matrice con dimensione 0

Oggi ho incidentalmente definito un array bidimensionale con la dimensione di una dimensione pari a 0, tuttavia il mio compilatore non si è lamentato. Ho trovato il seguente che afferma che questo è legale, almeno nel caso di gcc:

6.17 Array di lunghezza zero

Tuttavia, ho due domande su questo utilizzo:

Innanzitutto, è considerata una buona pratica di programmazione? Se è così, allora quando dovremmo usarlo nel mondo reale?

In secondo luogo, l’array che ho definito era bidimensionale, con dimensione 0 per una dimensione. È lo stesso del caso monodesmensionale? Per esempio,

int s[0] int s[0][100] int s[100][0] 

Sono tutti uguali nella memoria e per il compilatore?

EDIT: Rispondi a Greg: Il compilatore che sto usando è gcc 4.4.5. La mia intenzione per questo problema non dipende dal compilatore, tuttavia, se ci sono dei dettagli specifici del compilatore, sarebbe utile anche 🙂

Grazie in anticipo!