malloc() : La fonction malloc() alloue de la mémoire.
Prototype:
void * malloc(size_t taille);
dans: <stdlib.h> <malloc.h> (UNIX) <alloc.h> (DOS)
Description:
malloc() alloue un bloc de "taille" octets dans le tas.
Cela permet à un programme d'allouer la quantité de mémoire qui lui est nécessaire.
Portabilité: DOS, Unix, C Ansi.
Valeur renvoyée:
- Si la taille de mémoire demandée est disponible, malloc() retourne l'adresse d'un bloc alloué;
- Sinon (généralement le cas où il ne reste plus de mémoire displonible), malloc() retourne NULL.
- NULL est aussi retourné si on fournit à malloc() une "taille" égale a 0.
Utilisation courante: Tableaux dynamiques, Listes, Arbres.
Voir aussi:
Exemple:
#include
#include
main() {
char *chaine;
int taille;
printf("De combien de lettres votre prénom est il formé ? ");
scanf("%d", &taille);
/* Allocation mémoire pour une chaîne de "taille" caractères. */
chaine = (char *)malloc(taille*sizeof(char)+1);
if (chaine==NULL) {
printf("Erreur d'allocation mémoire !!!");
exit(1);
}
printf("Quel est votre prénom ? ");
scanf( "%s", chaine);
printf( "Bonjour %s\n", chaine); /* Affichage de la chaîne de caractères */
/* Libération de la mémoire allouée à la chaîne de caractères */
free(chaine);
}