Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> C /C + + Programming >> .

Le differenze di Malloc e calloc

malloc e calloc sono due funzioni di gestione della memoria nel linguaggio di programmazione "C" . Programmi non hanno bisogno di riservare aree di memoria , dato che è di solito la responsabilità del sistema operativo . Queste due funzioni non sono frequentemente utilizzati e sono necessari solo per quei programmi che non possono contare su processi di gestione di memoria standard . " C " Programming Language

" C " è stato a lungo un linguaggio privilegiato per la programmazione di rete e la gestione dei file . E 'una lingua difficile da imparare , perché le sue parole sono molto più codificato e meno come lingua reale di altri linguaggi come il COBOL , Pascal e Java . " C " è strettamente legata al sistema operativo Unix . In realtà, Unix è scritto in " C " Anche se Unix ha un proprio linguaggio di scripting , "C" è la lingua prevalente per la programmazione di servizi basati su Unix . Poiché l'allocazione della memoria è strettamente legato ai sistemi operativi , malloc e calloc sono più probabilità di essere trovati in servizi di basso livello programmati in " C " che nel client di fronte applicazioni di alto livello .
Gestione della memoria

un programma "C" è una lista di istruzioni leggibili che non possono essere eseguiti su un computer . Il programma deve essere compilato , che genera una copia del programma in codice leggibile . I sistemi operativi di solito assegnano posizioni di memoria per le variabili e le istruzioni del programma , al momento il programma è compilato . Variabili sono uno spazio di memorizzazione temporaneo per i dati durante il corso del programma di esecuzione. Malloc e calloc forniscono un metodo per ritardare assegnazione di indirizzi di memoria finché il programma viene eseguito . Questo si chiama gestione della memoria dinamica .
Malloc e calloc

Sia malloc e calloc allocano uno spazio in memoria heap del programma . Ogni funzione restituisce un puntatore al primo indirizzo di memoria allocata e tutti gli altri blocchi di memoria dovrebbe essere contigue . Se il sistema non dispone di memoria disponibile , entrambe le funzioni restituire null . Entrambe le funzioni si riservano di memoria sia per intero o dati di tipo carattere . In ogni caso , la dimensione del blocco di memoria deve essere un multiplo della dimensione richiesta per tale tipo di dati . Pertanto , è pratica comune utilizzare la funzione sizeof ( ) all'interno della lista di parametri sia per malloc e calloc per l'argomento dimensione del blocco di assicurare che la dimensione della memoria richiesta è un multiplo del tipo di dati desiderato .

Confronto

Malloc prende un argomento e assegna un blocco delle dimensioni richieste. Calloc prende due argomenti , che sono il numero di blocchi necessari e le dimensioni richieste per ogni blocco . Per questo motivo , malloc è giudicato utile per una singola variabile , e calloc è più adatto per l'allocazione della memoria per un array - che contiene diversi elementi . Malloc non inizializza l'area di memoria richiesto , mentre calloc a zero lo riempie .

 

Programmazione © www.354353.com