Namespaces
Variants

strdup

From cppreference.net
< c ‎ | string ‎ | byte
Défini dans l'en-tête <string.h>
char * strdup ( const char * src ) ;
(depuis C23)

Retourne un pointeur vers une chaîne d'octets terminée par un caractère nul, qui est une duplication de la chaîne pointée par src . L'espace pour la nouvelle chaîne est obtenu comme si malloc était invoqué. Le pointeur retourné doit être passé à free pour éviter une fuite de mémoire.

Si une erreur se produit, un pointeur nul est retourné et errno pourrait être défini.

Table des matières

Paramètres

src - pointeur vers la chaîne d'octets terminée par un caractère nul à dupliquer

Valeur de retour

Un pointeur vers la chaîne nouvellement allouée, ou un pointeur nul si une erreur s'est produite.

Notes

La fonction est identique à la POSIX strdup .

Exemple

#include <string.h>
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    const char *s1 = "Duplicate me!";
    char *s2 = strdup(s1);
    printf("s2 = \"%s\"\n", s2);
    free(s2);
}

Sortie :

s2 = "Duplicate me!"

Voir aussi

(C23)
alloue une copie d'une chaîne de taille spécifiée
(fonction)
copie une chaîne vers une autre
(fonction)
alloue de la mémoire
(fonction)
désalloue la mémoire précédemment allouée
(fonction)