strdup() : alloue un bloc et y duplique une chaîne.
Prototype:
char *strdup(const char *chaine);
dans: <string.h>
Description:
La fonction strdup() alloue un bloc mémoire de strlen(chaine)+1 octets.
(par appel à malloc()), puis effectue une copie de la chaîne 'chaine'.
L'utilisateur est responsable de la libération mémoire par free(), de la chaîne créee avec strdup().
Valeur retournée:
- l'adresse de la nouvelle chaîne de caractères si l'allocation s'est bien passée.
- NULL dans le cas contraire.
Voir aussi:
Portabilité:
Exemple:
#include
#include /* pour déclaration de puts() */
#include /* pour déclaration de free() */
int main(void) {
char * chaine_copiee, * chaine="bonjour";
/* Allocation mémoire et copie de 'chaine' dans 'chaine_copiee' */
chaine_copiee=strdup(chaine);
puts(chaine_copiee); /* Affichage de 'chaine_copiee' */
free(chaine_copiee); /* Libération du bloc alloué à 'chaine_copiee' */
return 0;
}