strcpy与strdup
linux下的c是ansi c,strdup不是標準庫函數.
strdup可以直接把要復制的內容復制給沒有初始化的指針,因為它會自動分配空間給目的指針,strdup用完要free否則,內存泄露.
strcpy的目的指針一定是已經分配內存的指針.
strdup
原型: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;
}
strcpy
原型:extern char *strcpy(char *dest,char *src);
用法:#include <string.h>
功能:把src所指由NULL結束的字符串復制到dest所指的數組中。
說明:src和dest所指內存區域不可以重疊且dest必須有足夠的空間來容納src的字符串。
返回指向dest的指針。
舉例:
// strcpy.c
#include <syslib.h>
#include <string.h>
main()
{
char *s="Golden Global View";
char d[20];
clrscr();
strcpy(d,s);
printf("%s",d);
getchar();
return 0;
}
?
?
總結
以上是生活随笔為你收集整理的strcpy与strdup的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 各种平台下Perl模块的安装方法
- 下一篇: 互联网12个创业派系500强,你认识多少