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