StrDupA 関数 (shlwapi.h)

文字列を複製します。

構文

PSTR StrDupA(
  PCSTR pszSrch
);

パラメーター

pszSrch

種類: PCTSTR

null で終わる定数文字列へのポインター。

戻り値

種類: PTSTR

コピーされた文字列のアドレスを返します。文字列をコピーできない場合は NULL を 返します。

注釈

StrDup は、元の文字列のサイズをストレージに割り当てます。 ストレージの割り当てが成功すると、元の文字列が重複する文字列にコピーされます。

この関数は LocalAlloc を使用して、文字列のコピー用の記憶域を割り当てます。 呼び出し元のアプリケーションは、StrDup の呼び出しによって返されるポインターで LocalFree 関数を呼び出すことによって、このメモリを解放する必要があります。

この単純なコンソール アプリケーションは、 StrDup の使用を示しています。

#include <windows.h>
#include <shlwapi.h>
#include <stdio.h>

void main(void)
{
   char buffer[] = "This is the buffer text";
   char *newstring;

   // Note: Never use an unbounded %s format specifier in printf.
   printf("Original: %25s\n", buffer);

   newstring = StrDup(buffer);
   if (newstring != NULL)
   {
       printf("Copy:     %25s\n", newstring);
       LocalFree(newstring);
   }
}

OUTPUT:
- - - - - - 
Original: This is the buffer text
Copy:     This is the buffer text

注意

shlwapi.h ヘッダーは、STRDup をエイリアスとして定義します。このエイリアスは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional、Windows XP [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー shlwapi.h
Library Shlwapi.lib
[DLL] Shlwapi.dll (バージョン 4.71 以降)