_strdup, _wcsdup, _mbsdup
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