Esistono due modi per allocare memoria a un array, la cui dimensione è sconosciuta all'inizio. Il modo più comune sta usando malloc
come questomatrice malloced VS. array a lunghezza variabile
int * array;
... // when we know the size
array = malloc(size*sizeof(int));
Ma è valida anche in C99 per definire la matrice dopo che conosciamo le dimensioni.
... // when we know the size
int array[size];
Sono essi assolutamente lo stesso?
Il secondo, anche in C99, non è sempre valida. Secondo C99 §6.10.8.3 Macro di feature condizionali, un'implementazione può definire ** __ STDC_NO_VLA __ ** e *** not *** implementare array di lunghezza variabile, e * essere ancora in conformità standard. * – WhozCraig
** Questo non è un domanda doppia **! Nessuna delle domande di riferimento ha i dettagli sulle differenze. – Jens
@WhozCraig AFAIK, questa è una cosa del 2011. Non c'è nessuna sezione in quello che ho che si propone di essere una copia dello standard C99. –