La funzione malloc () in C ++ alloca un blocco di memoria non inizializzata e restituisce un puntatore void al primo byte del blocco di memoria allocato se l'allocazione riesce.
La funzione malloc () in C ++ alloca un blocco di memoria non inizializzata e restituisce un puntatore void al primo byte del blocco di memoria allocato se l'allocazione riesce.
Se la dimensione è zero, il valore restituito dipende dall'implementazione della libreria. Può o non può essere un puntatore nullo.
prototipo malloc ()
void * malloc (size_t size);
Questa funzione è definita nel file di intestazione.
Parametri malloc ()
- dimensione: un valore integrale senza segno che rappresenta il blocco di memoria in byte.
malloc () Restituisce il valore
La funzione malloc () restituisce:
- un puntatore al blocco di memoria non inizializzato allocato dalla funzione.
- puntatore nullo se l'allocazione fallisce.
Esempio 1: come funziona la funzione malloc ()?
#include #include using namespace std; int main() ( int *ptr; ptr = (int*) malloc(5*sizeof(int)); if(!ptr) ( cout << "Memory Allocation Failed"; exit(1); ) cout << "Initializing values… " << endl << endl; for (int i=0; i<5; i++) ( ptr(i) = i*2+1; ) cout << "Initialized values" << endl; for (int i=0; i<5; i++) ( /* ptr(i) and *(ptr+i) can be used interchangeably */ cout << *(ptr+i) << endl; ) free(ptr); return 0; )
Quando esegui il programma, l'output sarà:
Inizializzazione dei valori … Valori inizializzati 1 3 5 7 9
Esempio 2: funzione malloc () con dimensione zero
#include #include using namespace std; int main() ( int *ptr = (int*) malloc(0); if(ptr==NULL) ( cout << "Null pointer"; ) else ( cout << "Address = " << ptr << endl; ) free(ptr); return 0; )
Quando esegui il programma, l'output sarà:
Indirizzo = 0x371530