|
se dichiari un array in questo modo:
int array[5];
dai all'array una dimensione statica, che è 5, e non può essere cambiata in momenti successivi.
per dichiarare un array con dimensione variabile devi dichiarare un puntatore ad intero (o a qualsiasi altro tipo) e poi fare la malloc:
int *array;
array= (int *) malloc (DIM*sizeof(int));
in questo modo array punta ad un'area di memoria che può contenere DIM elemento di tipo int (sizeof(int)). il valore restituito dalla malloc è un puntatore a void (void*) per cui viene castato a puntatore ad intero.
penso che con questa piccola spiegazione dovresti anche capire cosa fa il programma che hai postato.
|