Namespaces
Variants

strdup

From cppreference.net
< c ‎ | string ‎ | byte
Definiert im Header <string.h>
char * strdup ( const char * src ) ;
(seit C23)

Gibt einen Zeiger auf eine nullterminierte Byte-Zeichenkette zurück, die eine Kopie der Zeichenkette ist, auf die src zeigt. Der Speicher für die neue Zeichenkette wird so beschafft, als ob malloc aufgerufen wurde. Der zurückgegebene Zeiger muss an free übergeben werden, um einen Speicherverlust zu vermeiden.

Wenn ein Fehler auftritt, wird ein Nullzeiger zurückgegeben und errno könnte gesetzt werden.

Inhaltsverzeichnis

Parameter

src - Zeiger auf die nullterminierte Byte-Zeichenkette, die dupliziert werden soll

Rückgabewert

Ein Zeiger auf die neu zugewiesene Zeichenkette oder ein Nullzeiger, falls ein Fehler aufgetreten ist.

Hinweise

Die Funktion ist identisch mit der POSIX strdup .

Beispiel

#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);
}

Ausgabe:

s2 = "Duplicate me!"

Siehe auch

(C23)
weist eine Kopie einer Zeichenkette mit angegebener Größe zu
(Funktion)
kopiert eine Zeichenkette in eine andere
(Funktion)
weist Speicher zu
(Funktion)
gibt zuvor zugewiesenen Speicher frei
(Funktion)