函數strdup()

說明
功能:將字符串拷貝到新建的位置處
注意:strdup()在內部調用了malloc()爲變量分配內存,不需要使用返回的字符串時,需要用free()釋放相應的內存空間,否則會造成內存泄漏。

原型

char *strdup(const char *s);
頭文件:#include <string.h>

返回值
返回一個指針,指向爲複製字符串分配的空間。如果分配空間失敗,則返回NULL值。

實例

#include <stdio.h>
#include <string.h> //for strdup()
#include <stdlib.h> //for free()

int main(void)
{
        char *dup_str, *string = "I am won";
        dup_str = strdup(string);
        printf("%s\n", dup_str);
        free(dup_str);

        return 0;
}

與之相關的函數
strdup, strndup, strdupa, strndupa

函數strdup() 與 函數strcpy() 的區別
strdup可以直接把要複製的內容複製給沒有初始化的指針,因爲它會自動分配空間給目的指針,需要手動free()進行內存回收。
strcpy的目的指針一定是已經分配(足夠)內存的指針

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