Namespaces
Variants

strdup

From cppreference.net
Definiert im Header <string.h>
char * strdup ( const char * str1 ) ;
(Dynamic Memory TR)

Gibt einen Zeiger auf eine nullterminierte Byte-Zeichenkette zurück, die eine Duplikation der Zeichenkette ist, auf die str1 zeigt. 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 kann gesetzt werden.

Wie alle Funktionen aus dem Dynamic Memory TR ist strdup nur garantiert verfügbar, wenn __STDC_ALLOC_LIB__ durch die Implementierung definiert ist und wenn der Benutzer __STDC_WANT_LIB_EXT2__ auf den Integer-Konstantenwert 1 setzt, bevor string.h eingebunden wird.

Inhaltsverzeichnis

Parameter

str1 - 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

#ifdef __STDC_ALLOC_LIB__
#define __STDC_WANT_LIB_EXT2__ 1
#else
#define _POSIX_C_SOURCE 200809L
#endif
#include <string.h>
#include <assert.h>
#include <stdlib.h>
int main(void)
{
    const char *s1 = "String";
    char *s2 = strdup(s1);
    assert(strcmp(s1, s2) == 0);
    free(s2);
}

Siehe auch

(dynamic memory TR)
weist eine Kopie eines Strings bis zu einer bestimmten Größe zu
(Funktion)
kopiert einen String zu einem anderen
(Funktion)
weist Speicher zu
(Funktion)