C/Gestione della memoria: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
cambio avanzamento a 100%
Riga 58:
<source lang="c">
int *pi = NULL;
/* ... */
pi = (int *) malloc (sizeof (int));
 
Riga 76:
}
</source>
=== realloc() ===
Lo standard prevede una funzione ulteriore, per la riallocazione di memoria: realloc(). Questa funzione si usa per ridefinire l'area di memoria con una dimensione differente:
 
Line 81 ⟶ 82:
 
In pratica, la riallocazione deve rendere disponibili gli stessi contenuti già utilizzati, salvo la possibilità che questi siano stati ridotti nella parte terminale. Se invece la dimensione richiesta nella riallocazione è maggiore di quella precedente, lo spazio aggiunto può contenere dati casuali. Il funzionamento di realloc() non è garantito, pertanto occorre verificare nuovamente, dopo il suo utilizzo, che il puntatore ottenuto sia ancora valido.
 
=== Utilizzo della funzione free ===
la funzione free viene utilizzata all'interno del c, per deallocare la memoria precedentemente allocata dalla malloca.La chiamata di questa funzione si compone di:
free(<Nome_del_puntatore_FILE>);
 
_esempio
 
int main()
 
{int num,i;
 
printf("inserisci il numero dei numeri che vuoi inserire:\n");
scanf("%d",&num);
printf("\n");
int *array=(int *)/*coercizione*/malloc (sizeof(int)*num);//alloca la memoria
 
for(i=0;i<=num;i++)
{
array[i]=i;
}
 
for(i=0;i<=num;i++)
{
printf("%d ",array[i]);
}
 
free(array);//libera la memoria allocata
printf("\n");
system("pause");
}
 
=== Utilizzo della funzione realloc ===
 
=== Alcune note sul malloc, realloc e free ===
 
[[Categoria:C|Gestione della memoria]]