strdup, _mbsdup, _wcsdup
Nach oben zu string.h - Index
Inhaltsverzeichnis
Header-Datei
string.h, mbstring.h
Prototyp
char *strdup(const char *__s);
wchar_t *_wcsdup(const wchar_t *__s);
unsigned char *_mbsdup(const unsigned char *__s);
Beschreibung
Kopiert einen String in einen neu reservierten Speicherbereich.
strdup erstellt ein Duplikat des Strings s und reserviert den dafür erforderlichen Speicher über einen Aufruf von malloc. Reserviert werden (strlen(s) + 1) Bytes. Der Benutzer ist dafür verantwortlich, diesen Speicherbereich freizugeben, wenn er nicht mehr benötigt wird.
Rückgabewert
strdup gibt einen Zeiger auf den Speicherbereich zurück, der den duplizierten String enthält, oder NULL, wenn kein Speicher reserviert werden konnte.
Portabilität
POSIX | ANSI C | ANSI C++ | Win32 | Win64 | OS X | |
---|---|---|---|---|---|---|
strdup | + | |||||
_mbsdup | + | |||||
_wcsdup | + |
Beispiel
#include <stdio.h>
#include <string.h>
#include <alloc.h>
int main(void) {
char *dup_str, *string = "abcde";
dup_str = strdup(string);
printf("%s\n", dup_str);
free(dup_str);
return 0;
}