字符串复制函数strdup的用法

By Minidxer | November 1, 2007

※作者:丁志刚  转载请注明:Minidx全文检索http://blog.minidx.com/2007/11/01/40.html

原型:extern char *strdup(char *s);

头文件:#include <string.h>

功能:复制字符串s

说明:返回指向被复制的字符串的指针,所需空间由malloc()分配且可以由free()释放。

举例:


// strdup.c

#include <syslib.h>
#include <string.h>

main()
{
char *s=”Golden Global View”;
char *d;

clrscr();

d=strdup(s);
printf(”%s”,d);

getchar();
return 0;
}

需要注意的地方:

1,malloc/new分配的内存不要忘记free/delete

2, malloc和free,new和delete配对不要弄错了。

另外在功能上和下面的代码是等价的:

char *dest = malloc( strlen( src ) + 1 );
assert( dest != NULL );
strcpy( dest, src );

Topics: 程序开发相关 | 2 Comments » | 642 views Tags: , , , , , , , , ,

你可能还对下列文章感兴趣:

2 comments | Add One

  1. thaksin - 10/17/2008 at 11:30 am

    可以由free()释放, 那就应该是必须调用free()释放了。
    所以你的实现是有缺陷的

  2. Minidxer - 10/17/2008 at 11:32 am

    有缺陷?
    能否列举个没有“缺陷”地实现方法呢?

Leave a Comment

Name(*):

E-Mail(*) :

Website :

Comments :

Search Posts