🔧 C23 ・ string.h ・ C23
strndup の使い方char *strndup(const char *s, size_t n);
文字列の先頭から最大n文字を複製し、新たに確保した領域へコピーする。コピー元がn文字より短ければそこで打ち切り、必ず終端\0を付ける。C23で標準化された複製関数。 コピー元がヌル終端されていなくても、n文字までしか読まないため安全に使える点がstrdupとの違い。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void) {
char *s = strndup("hello world", 5);
if (s) {
puts(s);
free(s);
}
return 0;
}
⚠️ 戻り値は動的確保されるため、strdupと同様に使い終わったら必ずfreeする。
アプリの関数リファレンスで引く(無料・登録不要) 関数一覧へ
strndup と一緒に使う関数ckd_add
ckd_mul
ckd_sub
free_aligned_sized
free_sized
stdc_bit_ceil
stdc_bit_floor
stdc_bit_width
stdc_count_ones
stdc_count_zeros
stdc_has_single_bit
stdc_leading_zeros
stdc_trailing_zeros
もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。