strdup() 函数的存在有什么意义吗
strdup() 函数应该不是任何C标准的一部分,它的存在有什么意义吗strdup() 应该可以写成如下形式吧
char *strdup (const char *s) {
char *d = malloc (strlen (s) + 1); // 分配内存
if (d != NULL)
strcpy (d,s); // 复制字符串
return d; // 返回指针
}
如果内存分配失败, malloc 把errno设定为 ENOMEM
可是我想知道这个函数存在的意义,更安全的复制字符串?