Chinaunix首页 | 论坛 | 博客
  • 博客访问: 74997
  • 博文数量: 25
  • 博客积分: 692
  • 博客等级: 上士
  • 技术积分: 205
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-29 15:42
文章分类
文章存档

2011年(25)

分类: C/C++

2011-02-26 10:26:56

strdup与strcpy的区别:
char *strdup(const char *src);
strdup函数实现时,使用了malloc()函数动态分配了空间,并且实现了复制,并且把该空间的首地址返回,并没有释放该空间,容易造成内存泄漏,所以调用者要记得自己释放空间。
char *strcpy(char *dest, const char *src);
strcpy函数实现时,没有使用malloc函数动态分配空间,只是把调用者静动态分配的空间的首地址传递给该函数,所以可以做到动态空间“谁申请,谁释放”的编程规范。但是不好的地方是:有可以dest指针所指向的空间不够,造成内存溢出错误;所以一般使用strncpy函数会更安全。
记住:内存问题在程序中都是个大问题,千万要小心谨慎!
阅读(996) | 评论(0) | 转发(0) |
0

上一篇:c++ vector用法

下一篇:extern "C" 的用意

给主人留下些什么吧!~~