strdup和strndup函式用於複製字串,函式原型如下:
#include
char
*strdup
(const
char
* s)
;char
*strndup
(const
char
* s,size_t n)
;
strdup函式複製字串s內容,並返回拷貝字串的首位址。strdup函式內部使用malloc函式對新字串分配記憶體,使用完後需要使用free函式進行釋放。
strndup函式與strdup函式功能相似,不過之拷貝源字串前n個字元,並在末尾加『\0』。函式使用**如下。
#include
#include
#include
intmain()
程式執行結果如下:
linux還提供給了另外兩個函式:
char
*strdupa
(const
char
*s);
char
*strndupa
(const
char
*s, size_t n)
;
這兩個函式分別和strdup和strndup函式相同,唯一不同的就是拷貝的字串是使用alloca函式在棧上分配的,所以不需要手動釋放掉。 Linux程式設計之recvmsg和sendmsg函式
include include ssize t send int sockfd,const void buf,size t len,int flags ssize t sendto int sockfd,const void buf,size t len,int flags,const struct...
strcpy和strdup比較和詳解
extern char strdup char s 標頭檔案 string.h 功能 將串拷貝到新建的位置處 說 明 strdup不是標準的c函式。strdup 在內部呼叫了malloc 為變數分配記憶體,不需要使用返回的字串時,需要用free 釋放相應的記憶體空間,否則會造成記憶體洩漏。返回值 返...
strcpy和strdup比較和詳解
extern char strdup char s 標頭檔案 string.h 功能 將串拷貝到新建的位置處 說 明 strdup不是標準的c函式。strdup 在內部呼叫了malloc 為變數分配記憶體,不需要使用返回的字串時,需要用free 釋放相應的記憶體空間,否則會造成記憶體洩漏。返回值 返...