Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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_lwcsncat, _wcsncat_l, , _mbsncat,_mbsncat_l
strncmp, , wcsncmp_mbsncmp,_mbsncmp_l
strncpy, , _strncpy_lwcsncpy, _wcsncpy_l, , _mbsncpy,_mbsncpy_l
_strnicmp, , _wcsnicmp_mbsnicmp, _strnicmp_l, , _wcsnicmp_l,_mbsnicmp_l
strrchr, , wcsrchr_mbsrchr,_mbsrchr_l
strspn, , wcsspn_mbsspn,_mbsspn_l