🔧 文字列 ・ string.h ・ C23
strdup の使い方char *strdup(const char *s);
文字列を複製し、複製先の領域をmallocで新たに確保して返す。C23で標準化されたが、以前からPOSIXや多くの処理系で長らく使われてきた便利な文字列複製関数。 glibcなどでは以前から独自拡張として提供されてきたが、C23でようやく標準関数として整理された。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void) {
char *copy = strdup("hello");
if (copy) {
puts(copy);
free(copy);
}
return 0;
}
⚠️ 戻り値は動的確保されたメモリなので、使い終わったら必ずfreeする。忘れるとメモリリークになる。
アプリの関数リファレンスで引く(無料・登録不要) 関数一覧へ
strdup と一緒に使う関数memcmp
memcpy
memmove
memset
memset_explicit
strcat
strchr
strcmp
strcoll
strcpy
strcspn
strerror
strlen
strncat
strncmp
strncpy
もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。