Namensräume
Varianten
Aktionen

strdup

Von cppreference.com
< c‎ | string‎ | byte
Definiert in 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 Speicherplatz für die neue Zeichenkette wird so erhalten, als ob malloc aufgerufen worden wäre. Der zurückgegebene Zeiger muss an free übergeben werden, um Speicherlecks zu vermeiden.

Wenn ein Fehler auftritt, wird ein Nullzeiger zurückgegeben und errno kann gesetzt werden.

Inhalt

[bearbeiten] Parameter

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

[bearbeiten] Rückgabewert

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

[bearbeiten] Hinweise

Die Funktion ist identisch mit der POSIX strdup.

[bearbeiten] 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!"

[bearbeiten] Siehe auch

allokiert eine Kopie eines Strings mit angegebener Größe
(Funktion) [bearbeiten]
kopiert einen String in einen anderen
(Funktion) [bearbeiten]
alloziert Speicher
(Funktion) [bearbeiten]
dealloziert zuvor allozierten Speicher
(Funktion) [bearbeiten]