_strdup
, , _wcsdup
_mbsdup
Menduplikasi string.
Penting
_mbsdup
tidak dapat digunakan dalam aplikasi yang dijalankan di Windows Runtime. Untuk informasi selengkapnya, lihat Fungsi CRT yang tidak didukung di aplikasi Platform Windows Universal.
Sintaks
char *_strdup(
const char *strSource
);
wchar_t *_wcsdup(
const wchar_t *strSource
);
unsigned char *_mbsdup(
const unsigned char *strSource
);
Parameter
strSource
String sumber yang dihentikan null.
Nilai hasil
Masing-masing fungsi ini mengembalikan penunjuk ke lokasi penyimpanan untuk string yang disalin atau NULL
jika penyimpanan tidak dapat dialokasikan.
Keterangan
Fungsi memanggil _strdup
malloc
untuk mengalokasikan ruang penyimpanan untuk salinan strSource
lalu menyalin strSource
ke ruang yang dialokasikan.
_wcsdup
dan _mbsdup
adalah versi karakter lebar dan multibyte-character dari _strdup
. Argumen dan nilai yang dikembalikan adalah _wcsdup
string karakter lebar. Argumen dan nilai yang dikembalikan adalah _mbsdup
string multibyte-character. Ketiga fungsi ini berulah secara identik jika tidak.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Pemetaan rutin teks generik
TCHAR.H Rutin |
_UNICODE dan _MBCS tidak ditentukan |
_MBCS Didefinisikan |
_UNICODE Didefinisikan |
---|---|---|---|
_tcsdup |
_strdup |
_mbsdup |
_wcsdup |
Karena _strdup
panggilan malloc
untuk mengalokasikan ruang penyimpanan untuk salinan strSource
, adalah praktik yang baik selalu untuk melepaskan memori ini dengan memanggil free
rutinitas pada pointer yang dikembalikan oleh panggilan ke _strdup
.
Jika _DEBUG
dan _CRTDBG_MAP_ALLOC
didefinisikan, _strdup
dan _wcsdup
digantikan oleh panggilan ke _strdup_dbg
dan _wcsdup_dbg
, untuk memungkinkan debugging alokasi memori. Untuk informasi selengkapnya, lihat _strdup_dbg
, _wcsdup_dbg
.
Persyaratan
Rutin | Header yang diperlukan |
---|---|
_strdup |
<string.h> |
_wcsdup |
<string.h> atau <wchar.h> |
_mbsdup |
<mbstring.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// 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
Lihat juga
Manipulasi string
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