" 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