strndup
来自 cppreference.com
< c | experimental | dynamic
在头文件 <string.h> 中定义 |
||
char *strndup( const char *str, size_t size ); |
(动态内存 TR) | |
返回指向一个空终止的字节字符串的指针,该字符串包含最多 size
个字节从 str
指向的字符串中复制的字节。如果在第一个 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) |
从一个字符串复制一定数量的字符到另一个字符串 (函数) |
分配内存 (函数) |