strdup與strcpy

strdup與strcpy具體的區別,以及在不同操作系統下的使用。

strdup

原型:

extern char *strdup(char *s);

用法:#include <string.h>

功能:複製字符串s

說明:返回指向被複制的字符串的指針,所需空間由malloc()分配且可以由free()釋放。

舉例: // strdup.c

 

strcpy

原型:

extern char *strcpy(char *dest,char *src);

用法:#include <string.h>

功能:把src所指由NULL結束的字符串複製到dest所指的數組中

說明:src和dest所指內存區域不可以重疊且dest必須有足夠的空間來容納src的字符串。 返回指向dest的指針。

舉例: // strcpy.c

strdup不是標準的C函數,strdup可以直接把要複製的內容複製給沒有初始化的指針(注意用完要free,否則出現內存泄露)因爲它會自動在堆上分配空間給目的指針;strcpy的目的指針一定是已經分配內存的指針。

strdup實現如下:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章