strndup
From cppreference.com
< C | experimental | dynamic
| ヘッダー <string.h> で定義 |
||
| char *strndup( const char *str, size_t size ); |
(動的メモリー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と同一ですが、エラー時にerrnoを設定してもよい(必須ではない)点が異なります。
[編集] 例
このコードを実行
出力
strndup("String", 2) == St[編集] 関連項目
| (動的メモリーTR) |
文字列のコピーを確保する (関数) |
| (C11) |
ある文字列から別の文字列に指定された文字数をコピーする (関数) |
| メモリを割り当てる (関数) |