Originariamente inviato da shodan
L'allocazione dinamica si usa quando c'è la necessita di creare qualcosa a runtime.
Ad esempio stai usando un array troppo piccolo e te ne serve uno più grande. Ne allochi uno, ricopi il vecchio e usi solo quello nuovo. Con l'allocazione fai richiesta al sistema operativo di una zona di memoria, dichiarando che ne sei responsabile. Quando non ti serve più la liberi.

In C si usanomalloc(), realloc() e free() per gestire le allocazioni.
In C++ new e delete.

Per quanto riguarda il C99.
Il C99 è la ratifica ufficiale di una serie di estensioni introdotte da GCC che miravano a svecchiare il C. A parte Gcc non so quanti altri compilatori lo supporti. Introduce i VLA (variable lenght array) che spesso danno più problemi di quanti ne risolvano e soprattutto stravolge le abitudini di molti programmatori C, i quali continuano a usare il buon vecchio C89.
Grazie delle risposte,
per quello che riguarda il C99 ho capito,per l'allocazione dinamica aspetterò di arrivarci con il libro per capire bene.
Vorrei però capire come sia possibile svolgere l'esercizio del primo post senza array multi,come si può muoversi in orizzontale e verticale senza questi?