次の方法で共有


_strdup_dbg、_wcsdup_dbg

malloc のデバッグ バージョンを使用する _strdup と _wcsdup のバージョン。

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 の格納場所にストレージの割り当てができない場合ポインターを返します。

解説

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

ほとんどの場合これらの関数を明示的に呼び出す必要はありません。代わりにフラグ _CRTDBG_MAP_ALLOC を定義できます。_CRTDBG_MAP_ALLOC が定義されている場合_strdup の呼び出しと _wcsdup は _NORMAL_BLOCK への blockType に設定 _strdup_dbg と _wcsdup_dbg にそれぞれ再マップされます。したがって _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:: 重複

参照

関連項目

文字列操作 (CRT)

_strdup、_wcsdup、_mbsdup

概念

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