strndup
来自cppreference.com
                    
                                        
                    < c | experimental | dynamic
                    
                                                            
                    |   定义于头文件  <string.h>
  | 
||
|   char *strndup(const char *str, size_t size);  | 
||
返回指向空终止字符串的指针,该字符串含有 str 所指向字符串的至多 size 字节的副本。若在其首 size 字节中遇到空终止符,则将它添加到复制的字符串中。
必须传递返回指针给 free ,以避免内存泄漏。
若发生错误,则返回空指针,并可能设置 errno 。
同所有来自动态内存 TR 的函数, strndup 仅若实现定义了 __STDC_ALLOC_LIB__ 且用户在包含 string.h 前定义 __STDC_WANT_LIB_EXT2__ 为整数常量 1 才保证可用。
参数
| str | - | 指向要复制的空终止字符串的指针 | 
| size | - |   从 str 复制的最大字节数
 | 
返回值
指向新分配字符串的指针,若错误发生则为空指针。
注意
此函数等同于 POSIX strndup ,除了允许但不要求它在错误时设置 errno 。
示例
运行此代码
输出:
strndup("String", 2) == St参阅
|    (动态内存 TR)  | 
   分配字符串的副本  (函数)  | 
|    (C11)  | 
   从一个字符串复制一定数量的字符到另一个  (函数)  | 
|    分配内存  (函数)  |