_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 ランタイム ライブラリ のすべてのデバッグ バージョン。