include <stdio.h>
#include <stdlib.h>
int main() {
int *v=NULL ;
int i, val;
int size = 0;
do {
printf ( "Inserire un nuovo elemento nell'array :");
scanf ("%d", &val);
v = (int*) realloc( v, (++size)*(sizeof(int)) );
v[size-1] = val;
} while (val != -1);
printf( "Elementi nell'array:"); // stampa normalmente l'intero array nominato v[]
for ( i=0; i < size; i++ )
printf ("%d ", v[i]);
free(v);
return 0; }
Nel mio libro di testo e' proposto questo esercizio per mostrare l'uso di realloc. Ho cercato di analizzare il più attentamente possibile questo esempio ma rifacendolo , avrei utilizzato malloc
Qualcuno potrebbe gentilmente aiutarmi a capire la differenza tra malloc e realloc ?
Ho sempre pensato che la realloc permettesse di riallocare n blocchi di memoria , senza però crearne di nuovi , a differenza di malloc. Quindi con malloc, creando nuove ri allocazioni rischierei di perdere dati ricavati in cicli svolti precedentemente e allocati in blocchi 'vecchi' della memoria
Grazie mille a tutti in anticipo