MALLOC |
Allocation mémoire |
---|---|
Turbo C | stdlib.h |
Syntaxe
void *malloc(size_t n); |
Paramètres
Nom | Description |
---|---|
n | Ce paramètre permet d'indiquer la quantité de mémoire en octets |
Retour
Valeur | Description |
---|---|
pointeur | Ces valeurs permettent d'indiquer l'emplacement du début de bloc de mémoire réservé. |
Description
Cette fonction permet d'effectuer l'allocation de mémoire dynamique de «n» octets.
Remarques
- La fonction malloc alloue un bloc d'octets de taille à partir du tas de mémoire C. Il permet à un programme d'allouer de la mémoire explicitement, selon les besoins et dans les quantités exactes nécessaires. La mémoire de tas est utilisé pour l'allocation dynamique de blocs de mémoire de taille variable. De nombreuses structures de données telles que les arborescences et les listes utilisent généralement l'allocation de mémoire de tas.
- Tout l'espace entre la fin du segment de données et le haut de la pile de programmes est disponible pour une utilisation dans les petits modèles de données, à l'exception d'une marge de 256 octets immédiatement avant le haut de la pile. Cette marge est destinée à laisser à l'application une certaine marge de manoeuvre pour agrandir la pile, en plus d' une petite quantité nécessaire au DOS. Dans les modèles de données volumineuses, tout l'espace au-delà de la pile de programmes jusqu'à la fin de la mémoire physique est disponible pour le tas.
- La quantité de mémoire disponible pour l'allocation de mémoire dynamique dépend du modèle de mémoire sélectionner lors de la compilation. Par exemple le modèle de mémoire «small» offre un maximum de 64 Ko de disponible, tandis que le modèle de mémoire «large» offre au maximum toutes la mémoire conventionnelle disponibles (soit généralement 640 Ko).
- Si la quantité de mémoire de 640 Ko n'est pas suffisante pour vos besoins, vous devriez envisager d'utiliser le partagiciel «VGARAM» de Brett Warthen qu'il a développé en 1990, lequel offre la possibilité de prendre les 96 Ko suivant la mémoire conventionnelle qu'utilise la carte vidéo VGA et de l'ajouter aux 640 Ko de façon à obtenir un total de 736 Ko pour votre mémoire conventionnel !
- En cas de succès, la fonction malloc renvoie un pointeur vers le bloc de mémoire nouvellement alloué. S'il n'y a pas assez d'espace pour le nouveau bloc, il renvoie null. Le contenu du bloc reste inchangé. Si le paramètre n == 0, alors malloc renvoie null.
- La fonction malloc est disponible sur les systèmes UNIX et est compatible avec ANSI C.
Exemple
Voici quelques exemples typiques de l'utilisation de cette fonction :
on obtiendra le résultat suivant :
Valeur p[15] = 850Voir également
Langage de programmation - Turbo C - Référence de fonctions - calloc
Langage de programmation - Turbo C - Référence de fonctions - realloc
Langage de programmation - Turbo C - Référence de fonctions - free
Dernière mise à jour : Samedi, le 4 juillet 2015