Share via


_strdup_dbg、_wcsdup_dbg

更新 : 2007 年 11 月

_strdup および _wcsdup の、malloc のデバッグ バージョンを使用するバージョンです。

char *_strdup_dbg(
   const char *strSource,
   int blockType,
   const char *filename,
   int linenumber 
);
wchar_t *_wcsdup_dbg(
   const wchar_t *strSource,
   int blockType,
   const char *filename,
   int linenumber 
);

パラメータ

  • strSource
    NULL で終わる元の文字列。

  • blockType
    要求するメモリ ブロックの種類。_CLIENT_BLOCK または _NORMAL_BLOCK。

  • filename
    割り当て操作を要求したソース ファイル名へのポインタ、または NULL。

  • linenumber
    割り当て操作を要求したソース ファイル内の行番号、または NULL。

戻り値

これらの関数は、コピーした文字列の格納場所へのポインタを返します。記憶領域の割り当てに失敗した場合は NULL を返します。

解説

_strdup_dbg と _wcsdup_dbg 関数は、_DEBUG が定義されている場合に malloc、_malloc_dbg のデバッグ バージョンを使用してコピーされた文字列にメモリを割り当てることを除いて、_strdup と _wcsdup 関数と同じです。_malloc_dbg のデバッグ機能の詳細については、「_malloc_dbg」を参照してください。

ほとんどの場合は、これらの関数を明示的に呼び出す必要はありません。代わりに _CRTDBG_MAP_ALLOC フラグを定義します。_CRTDBG_MAP_ALLOC が定義されている場合、_strdup と _wcsdup への呼び出しはそれぞれ _strdup_dbg と _wcsdup_dbg に再マップされます。このとき、blockType は _NORMAL_BLOCK に設定されます。したがって、ヒープ ブロックを _CLIENT_BLOCK としてマークする場合を除き、これらの関数を明示的に呼び出す必要はありません。ブロックの種類の詳細については、「デバッグ ヒープ上のメモリ ブロックの型」を参照してください。

汎用テキスト ルーチンのマップ

TCHAR.H のルーチン

_UNICODE および _MBCS が未定義の場合

_MBCS が定義されている場合

_UNICODE が定義されている場合

_tcsdup_dbg

_strdup_dbg

_mbsdup

_wcsdup_dbg

必要条件

ルーチン

必須ヘッダー

_strdup_dbg, _wcsdup_dbg

<crtdbg.h>

互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。

ライブラリ

C ランタイム ライブラリのすべてのデバッグ バージョン。

.NET Framework の相当するアイテム

System::String::Clone

参照

概念

デバッグ バージョンのヒープ割り当て関数

参照

文字列操作 (CRT)

_strdup、_wcsdup、_mbsdup