ALLOCA |
Alloué avec libération automatique |
Borland C++ |
malloc.h |
Syntaxe
void *alloca(size_t size);
|
Paramètres
Nom |
Description |
size |
Ce paramètre permet d'indiquer le quantité de mémoire en octets |
Retour
Valeur |
Description |
NULL |
Cette valeur permet d'indiquer qu'il n'a pas trouvé d'espace disponible. |
pointeur |
Ces valeurs permettent d'indiquer un pointeur vers la région de la pile où la mémoire a été alloué. |
Description
Cette fonction permet d'effectuer de l'allocation de mémoire en octets directement sur la pile du programme en cours.
Remarques
- La fonction alloca alloue de la mémoire en taille octets sur la pile; l'espace alloué est automatiquement libéré lorsque la fonction d'appel se termine.
- Étant donné que la fonction alloca modifie le pointeur de la pile, il ne faut pas placer les appels à alloca dans une expression étant un paramètre de la fonction.
- La fonction alloca ne doit pas être utilisée dans une bloc «try» d'un programme C++. Si une exception se produit, toutes les valeurs placées sur la pile par alloca seront corrompues.
- Si la fonction d'appel ne contient aucune référence à des variables locales dans la pile, la pile ne sera pas restaurée correctement lorsque
la fonction se terminera, et ainsi il risque d'avoir un plantage du programme. Par conséquent, pour vous assurer que la pile est restaurée correctement,
utilisez le code suivant dans la fonction d'appel :
char *P;
char blocmemoire[5];
blocmemoire[ 0 ] = 0;
P = alloca(nbytes);
Cible
DOS, UNIX, Win 16, Win 32, OS/2
Dernière mise à jour : Dimanche, le 3 décembre 2017