C語言自定義函式如何返回陣列

2021-10-07 18:58:34 字數 806 閱讀 8790

使用 c 語言,在main()函式中呼叫了乙個自定義的函式,想要從函式中獲取其執行產生的字串,直接返回陣列是實現不了的,最起碼也要返回陣列的位址。但是在自定義函式中建立陣列後,該陣列本身是乙個區域性變數,當該自定義函式的生命週期結束後,區域性變數也就被**了,即使返回了乙個代表陣列的位址,但實際上其指代的內容可能已經發生了變化。

有三種方法可以實現自定義函式成功返回陣列:

1、將陣列定義為全域性變數;

2、使用malloc在堆區開闢動態空間;

3、在呼叫函式時傳入陣列位址。

----->如果在需求允許的情況下,直接將陣列定義為全域性變數是最快的,直接在程式前宣告即可。

----->使用malloc在堆區開闢動態空間:

#include

#include

#include

char

*getarr()

intmain()

#include

#include

char

*getarr

(char

*p)int

main()

;getarr

(arr)

;printf

("%s"

,arr)

;return0;

}

此外,如果僅僅想使用自定義函式中宣告的字串常量,可以直接用函式返回其位址即可,因為字串常量是存放在常量區,空間不隨著自定義函式的結束而**。

C語言 自定義函式

c語言 關於自定義函式 return type function name datetype arg datetype arg2 函式三要素 函式返回值 函式名 引數列表 例子呀 自定義函式的完整寫法 include 函式原型 int sum int,int 可以只寫型別,引數名稱可省略 int m...

返回標量CLR自定義函式

昨天有學習了返回表自定義函式 clr table valued函式 今天學習另乙個,實現返回標量 scalar valued function。這個標量函式獲取分類全名。select categoryname kindname fruitname from dbo tvf fruit where f...

C語言 自定義函式 傳遞引數

c語言中自定義函式時,值傳遞是單向的,由實參傳遞給形參 無論對形參做什麼運算,都不會改變實參的值 但是,若想要利用自定義函式來改變實參的值,可以利用指標傳遞 舉個栗子 includevoid exch int main void exch int excha,int exchb 可以看到,這裡定義的...