C語言

當前位置 /首頁/計算機/C語言/列表

C 語言中返回字串函式的四種實現方法

C 語言中返回字串函式的方法有很多種,不同的方法效果是不一樣的。下面是小編為大家帶來的C 語言中返回字串函式的方法,歡迎閱讀

C 語言中返回字串函式的四種實現方法
  C 語言中返回字串函式的四種方法

1。使用堆空間,返回申請的堆地址,注意釋放

2。函式引數傳遞指標,返回該指標

3。返回函式內定義的.靜態變數(共享)

4。返回全域性變數

其實就是要返回一個有效的指標,尾部變數退出後就無效了。

使用分配的記憶體,地址是有效

char *fun()

{

char* s = (char*)calloc(100, sizeof(char*) );

if (s)

strcpy ( s , "abc " );

return s;

}

但這種方式需要注意,必須由使用將將返回的地址free掉

將地址由入參傳入

char* fun(char*s)

{

if (s)

strcpy(s, "abc ");

return s;

}

這種方式呼叫都要注意給s分配的大小是足夠。

可以這樣:

char* fun(char*s, int len)

{

if (s)

{

strncpy(s, "abc ", len-1);

s[len-1] = 0;

}

return s;

}

或才使用區域性靜態變數

char* fun()

{

static char s[100];

strcpy(s, "abc ");

return s;

}

這種方式需要注意,不要修改返回的這個字串,由於是共享地址,對它的修改會反應到每個呼叫者的。可以這樣:

const char* fun()

{

static char s[100];

strcpy(s, "abc ");

return s;

}

還有一種是使用全域性變數

char g_s[100];

char* fun()

{

strcpy(g_s, "abc ");

return s;

}

同樣的,也要注意這個變數可儲存的最大

TAG標籤:語言 返回 字串 函式 #