Freigeben über


_strdup, _wcsdup, _mbsdup

Duplikatszeichenfolgen.

Wichtig

_mbsdup kann in Anwendungen nicht verwendet werden, die im Windows-Runtime ausgeführt werden.Weitere Informationen finden Sie unter CRT-Funktionen nicht mit /ZW unterstützt.

char *_strdup(
   const char *strSource 
);
wchar_t *_wcsdup(
   const wchar_t *strSource 
);
unsigned char *_mbsdup(
   const unsigned char *strSource 
);

Parameter

  • strSource
    Mit NULL endende Quellzeichenfolge.

Rückgabewert

Jede dieser Funktionen gibt einen Zeiger zum Speicherort für die kopierte Zeichenfolge oder NULL zurück, wenn Speicher nicht zugeordnet werden kann.

Hinweise

Die _strdup-Funktionsaufrufe malloc, um den Speicherplatz für eine Kopie von strSource zugeordnet und kopiert dann strSource dem reservierten Platz.

_wcsdup und _mbsdup sind Breitzeichen- und Multibytezeichenversionen von _strdup. Die Argumente und der Rückgabewert von _wcsdup sind Breitzeichen-Zeichenfolgen; die von _mbsdup sind Mehrbyte-Zeichenfolgen. Diese drei Funktionen verhalten sich andernfalls identisch.

Zuordnung generischer Textroutinen

TCHAR.H-Routine

_UNICODE & _MBCS nicht definiert

_MBCS definiert

_UNICODE definiert

_tcsdup

_strdup

_mbsdup

_wcsdup

Da _strdupmalloc aufgerufen wird, um Festplattenspeicher für die Kopie von strSource zuzuordnen, wird empfohlen, immer diesen Arbeitsspeicher freizugeben, indem die frei Routine in dem Zeiger aufruft, der durch den Aufruf von _strdup zurückgegeben wird.

Wenn _DEBUG und _CRTDBG_MAP_ALLOC definiert werden, sind _strdup und _wcsdup durch Aufrufe von _strdup_dbg und _wcsdup_dbg ersetzt, um das Debuggen von Speicherbelegungen zuzulassen. Weitere Informationen finden Sie unter _strdup_dbg, _wcsdup_dbg.

Anforderungen

Routine

Erforderlicher Header

_strdup

<string.h>

_wcsdup

<string.h> oder <wchar.h>

_mbsdup

<mbstring.h>

Zusätzliche Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Beispiel

// crt_strdup.c

#include <string.h>
#include <stdio.h>

int main( void )
{
   char buffer[] = "This is the buffer text";
   char *newstring;
   printf( "Original: %s\n", buffer );
   newstring = _strdup( buffer );
   printf( "Copy:     %s\n", newstring );
   free( newstring );
}
  

.NET Framework-Entsprechung

System::String::Clone

Siehe auch

Referenz

Zeichenfolgenbearbeitung (CRT)

memset, wmemset

strcat, wcscat, _mbscat

strcmp, wcscmp, _mbscmp

strncat, _strncat_l, wcsncat, _wcsncat_l, _mbsncat, _mbsncat_l

strncmp, wcsncmp, _mbsncmp, _mbsncmp_l

strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l

_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l

strrchr, wcsrchr, _mbsrchr, _mbsrchr_l

strspn, wcsspn, _mbsspn, _mbsspn_l