Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dupliziert Zeichenfolgen.
Wichtig |
|---|
_mbsdup kann nicht in den Anwendungen verwendet werden, die in Windows-Runtime ausführen.Weitere Informationen finden Sie unter CRT-Funktionen unterstützt nicht mit /ZW. |
char *_strdup( const char *strSource ); wchar_t *_wcsdup( const wchar_t *strSource ); unsigned char *_mbsdup( const unsigned char *strSource );
Parameter
- strSource
Auf NULL endende Quellzeichenfolge.
Rückgabewert
Jede dieser Funktionen gibt einen Zeiger auf den 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 zuzuordnen und kopiert dann strSource an den zugeordneten Platz.
_wcsdup und _mbsdup sind Breitzeich und Mehrbytezeichen-Versionen 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 generische Textroutinen
TCHAR.H-Routine |
_UNICODE & _MBCS nicht definiert. |
_MBCS definiert |
_UNICODE definiert |
|---|---|---|---|
_tcsdup |
_strdup |
_mbsdup |
_wcsdup |
Da _strdupmalloc aufruft, um Speicherplatz für die Kopie von strSource zuzuordnen, wird empfohlen, diesen Arbeitsspeicher immer freizugeben, indem die frei Routine auf dem Zeiger aufruft, der durch den Aufruf _strdup zurückgegeben wird.
Wenn _DEBUG und _CRTDBG_MAP_ALLOC definiert sind, werden _strdup und _wcsdup durch Aufrufe _strdup_dbg und zu _wcsdup_dbg ersetzt, um das Debuggen von Speicherbelegungen zu ermöglichen.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> |
So zusätzlicher Kompatibilitätsinformation 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
Siehe auch
Referenz
Zeichenfolgenbearbeitung (CRT)
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
Wichtig