Le man de la fonction strdup
🎯 Duplique une chaîne de caractères en allouant dynamiquement la mémoire nécessaire pour stocker une copie de la chaîne
⚙️ Prototype de strdup
char *strdup(const char *s);
🧑💻 Fonctionnement de strdup
La fonction strdup
duplique une chaîne de caractères en allouant dynamiquement la mémoire nécessaire pour stocker une copie de la chaîne s
. Elle retourne un pointeur vers cette nouvelle chaîne, qui est terminée par un caractère nul \0
. La mémoire pour la nouvelle chaîne est allouée avec malloc
, et il est de la responsabilité de l’utilisateur de libérer cette mémoire avec free
lorsque la chaîne n’est plus nécessaire.
Paramètres :
s
: Pointeur vers la chaîne de caractères à dupliquer.
Retour :
- Un pointeur vers une nouvelle chaîne de caractères, qui est une copie de s.
NULL
si l’allocation de mémoire échoue.
Remarques :
- strdup est une fonction pratique pour dupliquer des chaînes de caractères, en particulier lorsque vous travaillez avec des fonctions qui modifient les chaînes et que vous souhaitez préserver l’originale.
- Attention : strdup alloue de la mémoire dynamique, donc n’oubliez pas d’appeler free sur la chaîne dupliquée pour éviter les fuites de mémoire.
✨ Exemple d'utilisation de strdup
Duplication de Chaînes :
👉 Ici, strdup est utilisé pour dupliquer une chaîne de caractères. C’est particulièrement utile lorsque vous avez besoin de travailler sur une copie de la chaîne sans modifier l’originale.
char *original = "42 Network";
char *duplicate = strdup(original);
if (duplicate) {
printf("Chaîne dupliquée : %s\n", duplicate);
free(duplicate); // Libération de la mémoire allouée
} else {
printf("Impossible de dupliquer la chaîne.\n");
}
Voir aussi :
strcpy
: Copie une chaîne de caractères dans une autre.malloc
: Alloue de la mémoire dynamique.free
: Libère la mémoire allouée dynamiquement.strlen
: Calcule la longueur d’une chaîne de caractères.strncpy
: Copie un nombre limité de caractères d’une chaîne dans une autre.