En C - un langage de programmation conçu par Dennis Ritchie chez AT & T Bell Laboratories dans les années 1970 - la fonction malloc est un moyen d' allouer de la mémoire dynamiquement , ou en réponse à la demande, plutôt qu'en termes absolus. Parfois, les programmeurs ne savent pas combien de mémoire sera nécessaire pour les données au moment où ils sont en train d'écrire un programme , donc malloc leur permet d'allouer dynamiquement de la mémoire après le démarrage du programme en cours d'exécution . Allocation de mémoire
Par défaut , la fonction malloc alloue un bloc contigu ou adjacent, de mémoire sur une zone connue comme un tas, qui peut être consulté par un programme pour stocker des données et des variables. La fonction malloc prend un seul argument , un entier long ou 32 bits qui représente le nombre d'octets à allouer dans le tas . La fonction malloc demande au système pour un bloc de mémoire de la taille spécifiée et renvoie un pointeur - une adresse, du point de vue du langage de programmation - . Sur le premier élément du bloc
Valeur de retour
ordinateurs ont seulement une quantité limitée de mémoire , il est donc possible pour la fonction malloc pour demander plus de mémoire que ce qui est physiquement disponible et provoquer une panne du programme. S'il n'ya pas assez de mémoire disponible, malloc renvoie un pointeur NULL ou un pointeur avec une valeur de zéro . Pour empêcher un programme de s'écraser , les programmeurs doivent explicitement vérifier que malloc n'a pas retourné null, afin qu'ils sachent que la mémoire demandée a été alloué avec succès avant de tenter de l'utiliser.
Libérer de la mémoire
même, un ordinateur ne peut pas perpétuellement affecter de plus en plus de mémoire - et écrasant à plusieurs reprises un pointeur qui pointe vers la mémoire allouée dynamiquement peuvent conduire à des données deviennent inaccessibles. Mémoire allouée dynamiquement doit donc être libéré à la piscine de la mémoire système , en utilisant la fonction libre, une fois qu'il n'est plus nécessaire . Une fois que le processus se termine, toute la mémoire allouée dynamiquement est libéré pour le pool de mémoire .
Syntaxe
Malloc renvoie un pointeur générique, ou un pointeur d'annuler , mais le pointeur peut être dactylographié ou catalogué , pour indiquer le type de données à laquelle il pointe . La syntaxe " char * str = (char *) malloc ( 40) », par exemple , alloue de la mémoire pour une chaîne de 40 caractères de long . Alternativement , les programmeurs peuvent déclarer un pointeur et d'appeler malloc quand ils veulent faire de la place pour les éléments d'un tableau . Cependant, il est important de noter que la fonction malloc alloue seulement la mémoire . Il ne se vide pas ou initialiser la mémoire, il attribue le contraire.