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.
Retour en haut