strndup
提供: cppreference.com
< c | experimental | dynamic
ヘッダ <string.h> で定義
|
||
char *strndup(const char *str, size_t size); |
(dynamic memory TR) | |
str
の指す文字列から最大 size
バイトのコピーを保持するヌル終端バイト文字列を指すポインタを返します。 先頭 size
バイト内でヌル終端に遭遇しなかった場合、複製後の文字列にヌル終端が追加されます。
メモリリークを回避するためには、返されるポインタは free に渡されなければなりません。
エラーが発生した場合は、ヌルポインタが返され、 errno が設定されるかもしれません。
Dynamic Memory TR のすべての関数と同様に、 strndup
は処理系によって __STDC_ALLOC_LIB__ が定義されており、 string.h
をインクルードする前にユーザが __STDC_WANT_LIB_EXT2__ を整数定数 1 に定義する場合にのみ、利用可能であることが保証されます。
目次 |
[編集] 引数
str | - | 複製するヌル終端バイト文字列を指すポインタ |
size | - | str からコピーする最大バイト数
|
[編集] 戻り値
新たに確保された文字列を指すポインタ、またはエラーが発生した場合はヌルポインタ。
[編集] ノート
この関数は POSIX の strndup と同一です。 ただし、 POSIX 版はエラーの場合に errno を設定することが許されてはいますが、要求されてはいません。
[編集] 例
Run this code
出力:
strndup("String", 2) == St
[編集] 関連項目
(dynamic memory TR) |
文字列のコピーを確保します (関数) |
(C11) |
文字列から別の文字列へ文字を一定量コピーします (関数) |
メモリを確保します (関数) |