Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Dizeleri çoğaltır.
Önemli
_mbsdupWindows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz. Daha fazla bilgi için bkz. Evrensel Windows Platformu uygulamalarında desteklenmeyen CRT işlevleri.
Sözdizimi
char *_strdup(
const char *strSource
);
wchar_t *_wcsdup(
const wchar_t *strSource
);
unsigned char *_mbsdup(
const unsigned char *strSource
);
Parametreler
strSource
Null olarak sonlandırılan kaynak dize.
Dönüş değeri
Bu işlevlerin her biri, kopyalanan dizenin depolama konumuna veya NULL depolama ayrılamıyorsa bir işaretçi döndürür.
Açıklamalar
İşlev, bir kopyası strSource için depolama alanı ayırmayı çağırır malloc ve ardından ayrılan alana kopyalarstrSource._strdup
_wcsdup ve _mbsdup geniş karakterli ve çok baytlı sürümleridir _strdup. bağımsız değişkenleri ve dönüş değeri _wcsdup geniş karakterli dizelerdir. bağımsız değişkenleri ve dönüş değeri _mbsdup çok baytlı karakter dizeleridir. Bu üç işlev aynı şekilde davranır.
Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.
Genel metin yordamı eşlemeleri
TCHAR.H olağan |
_UNICODE ve _MBCS tanımlanmadı |
_MBCS tanımlanan |
_UNICODE tanımlanan |
|---|---|---|---|
_tcsdup |
_strdup |
_mbsdup |
_wcsdup |
_strdup kopyası strSourceiçin depolama alanı ayırmaya yönelik çağrılar malloc olduğundan, çağrısı tarafından _strdupdöndürülen işaretçide yordamını çağırarak free bu belleği serbest bırakmak her zaman iyi bir uygulamadır.
ve _CRTDBG_MAP_ALLOC tanımlanırsa _strdup _DEBUG ve _wcsdup bellek ayırmalarında hata ayıklamaya izin vermek için ve _wcsdup_dbgçağrılarıyla _strdup_dbg değiştirilir. Daha fazla bilgi için bkz. _strdup_dbg, _wcsdup_dbg.
Gereksinimler
| Yordam | Gerekli başlık |
|---|---|
_strdup |
<string.h> |
_wcsdup |
<string.h> veya <wchar.h> |
_mbsdup |
<mbstring.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Örnek
// 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 );
}
Original: This is the buffer text
Copy: This is the buffer text
Ayrıca bkz.
Dize işleme
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