Includere il file di libreria con le definizioni della libreria standard . Questo è il file " stdlib.h " e comprende , tra le altre caratteristiche importanti C , tutte le funzioni che svolgono allocazione dinamica della memoria . Per includere questo file di libreria nel programma , inserire la seguente riga nella parte superiore del file di intestazione di origine /Games Esempio : .
# Include
2
decidere cosa si vuole fare. Poi scegliere la funzione da i seguenti passaggi sono più adatte all'azione di memoria di allocazione che si desidera eseguire .
3
Usa malloc ( ) per un blocco di memoria di dimensioni note . " Malloc " alloca byte "dimensione" e restituisce un puntatore all'inizio del blocco
Prototipo :
void * malloc ( size_t size ) ;
Esempio : .
Int i ;
char * buf ; printf ( "Inserire la lunghezza della stringa : " ) ;
scanf ( " % d" , & i ) ;
buf = ( char * ) malloc ( i +1) ;
if ( NULL == buf ) exit ( 1) ;
//etc
4
Employ calloc ( ) per una serie di elementi in cui ogni elemento ha una dimensione di più di un byte . " Calloc " alloca un blocco di memoria per gli elementi "Num " ogni elemento essendo byte "dimensione" di lunghezza. Esso restituisce un puntatore all'inizio del blocco
Prototipo :
void * calloc ( size_t num , size_t size ) ;
Esempio : .
Int i , n;
int * Parr ;
printf ("Inserire il numero di interi : ");
scanf ( " % d" , & i ) ;
n = sizeof ( int);
Parr = (int * ) calloc (i, n) ;
if ( NULL == Parr ) exit ( 1) ;
//etc
5
Utilizzare realloc () per modificare la dimensione di un blocco di memoria . " Realloc " si espande o riduce il blocco di memoria di byte "dimensione" che " ptr " indicò
prototipo
OID * realloc (void * ptr , size_t size ) ;
Esempio : .
Int num1 , num2 ;
int * arr = NULL;
non
{ printf ( "Inserire un numero intero positivo : " ) ;
scanf ( " % d" , & num1 ) ;
while ( 1 > num1 ) ;
arr = ( int * ) calloc ( num1 , sizeof ( int) ) ;
if ( NULL == arr) exit ( 1) ;
do {
printf ( " Immettere un altro numero intero positivo : " ) ;
scanf ( " % d " , & num2 ) ;
while (1 > num2 ) ;
arr = ( int * ) realloc ( arr , num2 * sizeof ( int ) ) ;
if ( NULL == arr) exit ( 1) ;
//etc Pagina 6
uscita di un blocco di memoria allocata nei passi 3-5 usando free () . "Free" rilascia il blocco di memoria che inizia a memoria che "PTR" indicò
prototipo
vuoto libero (void * ptr ) ;
Esempio : .
Int * buf ;
buf = ( int * ) malloc ( 100 * sizeof ( int) ) ; free ( buf ) ;
//etc
Programmazione © www.354353.com