strcpy和strdup比較和詳解

2021-07-06 01:41:35 字數 949 閱讀 1535

①extern char *strdup(char *s);

標頭檔案:string.h

功能: 將串拷貝到新建的位置處

說 明:strdup不是標準的c函式。strdup()在內部呼叫了malloc()為變數分配記憶體,不需要使用返回的字串時,需要用free()釋放相應的記憶體空間,否則會造成記憶體洩漏。
返回值:返回乙個指標,指向為複製字串分配的空間;如果分配空間失敗,則返回null值。

// strdup.c

#include 

#include 

main() 

②char *strcpy(char* dest, const char *src);

標頭檔案:#include >和 #include

功能:把從src位址開始且含有null結束符的字串複製到以dest開始的位址空間

說明:strcpy是標準的c語言標準庫函式。src和dest所指記憶體區域不可以重疊且dest必須有足夠的空間來容納src的字串。

返回值:返回指向dest的指標。

舉例:

// strcpy.     

#include 

#include 

main()

1.strdup不是標準的c函式,strcpy是標準的c函式,使用時注意場合。
2.strdup可以直接把要複製的內容複製給沒有初始化的指標,因為它會自動分配空間給目的指標,strcpy的目的指標一定是已經分配記憶體的指標。
3.strdup用完要free()函式釋放記憶體,否則記憶體洩露 。
4.使用strcpy必須事先確定src大小,可以先strlen判斷src的大小,之後為dest申請空間,之後再strcpy就不會有問題了。

strcpy和strdup比較和詳解

extern char strdup char s 標頭檔案 string.h 功能 將串拷貝到新建的位置處 說 明 strdup不是標準的c函式。strdup 在內部呼叫了malloc 為變數分配記憶體,不需要使用返回的字串時,需要用free 釋放相應的記憶體空間,否則會造成記憶體洩漏。返回值 返...

strcpy和strdup比較和詳解

strcpy和strdup比較和詳解 函式和功能描述 extern char strdup char s 標頭檔案 string.h 功能 將串拷貝到新建的位置處 說 明 strdup不是標準的c函式。strdup 在內部呼叫了malloc 為變數分配記憶體,不需要使用返回的字串時,需要用free ...

strdup與strcpy具體的區別

我分別在xp的環境和linux環境下編譯執行c 我發現乙個不解的現象 現象描述 兩個字串 char from,char to 要把from的內容複製給to。我在xp下,用strcpy to,from 出現memory問題,於是換成 to strdup from 就執行正常。而在linux下,用to ...