funzione malloc

December 6

funzione malloc


In C - un linguaggio di programmazione progettato da Dennis Ritchie a AT & T Bell Laboratories nei primi anni 1970 - la funzione malloc è un mezzo di allocazione della memoria in modo dinamico, o in risposta alla domanda, piuttosto che in termini assoluti. A volte i programmatori non sanno quanta memoria sarà necessario per i dati nel momento in cui stanno scrivendo un programma, in modo da malloc permette loro di allocare dinamicamente la memoria dopo l'avvio del programma in esecuzione.

Allocazione della memoria

Per impostazione predefinita, la funzione malloc alloca un contigui o adiacenti, blocco di memoria in una zona conosciuta come un cumulo, a cui si accede da un programma per memorizzare i dati e variabili. La funzione malloc prende un singolo argomento, un intero lungo o 32 bit che rappresenta il numero di byte da allocare dal mucchio. La funzione malloc chiede al sistema per un blocco di memoria della dimensione specificata e restituisce un puntatore - un indirizzo, dal punto di vista del linguaggio di programmazione - al primo elemento del blocco.

Valore di ritorno

I computer hanno solo una quantità limitata di memoria, quindi è possibile che la funzione malloc per richiedere più memoria di quanto sia fisicamente disponibile e causare un crash del programma. Se non abbastanza memoria disponibile, malloc restituisce un puntatore nullo, o un puntatore con un valore di zero. Per impedire che un programma di schiantarsi, i programmatori devono esplicitamente verificare che malloc non ha restituito nulla, in modo che sappiano che la memoria richiesta è stata assegnata con successo prima di tentare di usarlo.

memoria Releasing

Allo stesso modo, un computer non può perennemente allocare più memoria - e più volte sovrascrivere un puntatore che punta a dinamicamente allocata la memoria può portare a dati di diventare inaccessibili. memoria dinamicamente allocata deve quindi essere rilasciata al pool di memoria di sistema, utilizzando la funzione libera, una volta che non è più necessario. Una volta che un processo termina, tutta la memoria dinamicamente allocata viene rilasciato di nuovo al pool di memoria.

Sintassi

Malloc restituisce un puntatore generico, o un puntatore a void, ma il puntatore può essere scritto, o typecast, per indicare il tipo di dati a cui si punta. Il "str char = (char) malloc (40)," Sintassi per esempio, alloca la memoria per una stringa lunga 40 caratteri. In alternativa, i programmatori possono dichiarare un puntatore e richiamare malloc quando vogliono per fare spazio per gli elementi di un array. Tuttavia, è importante notare che la funzione malloc alloca memoria di sola. Non svuotare o meno inizializzare la memoria assegna.