函式返回值為指標型別

2021-10-01 03:53:40 字數 376 閱讀 9692

char*getstring(void)

void main(void)

在函式getstring()中定義的變數p屬於local(區域性變數),當函式結束時自動消失,所以在返回時,根本就得不到p所指的內容。解決辦法有以下幾種:(可能還有很多方法,不過這裡只是最常見的幾中,也是最能體表現程式中記憶體使用的情況。)

主要的兩種方法:

(1)可以使用全域性陣列。使用全域性變數時,在程式結束時才釋放。

(2)在函式getstring()中使用new在堆上動態分配記憶體來建立陣列。c語言中可以使用malloc()函式。不過不要忘記了,在使用完後要進行記憶體的釋放,不然會造成記憶體的洩漏。分別用delete,free()釋放。使用delete時,會呼叫類的析構函式,而free則不會。

函式返回值為指標型別的總結

參考部落格 char getstring void void main void void main 3 可以定義為靜態型別,static char p hello world 用static 宣告乙個指標可以,但也不太好,因為如果你多次呼叫這個函式返回多個指標,但這幾個指標實際上指向同一塊位址,改...

C語言函式返回值為指標和函式返回值為void

有時遇到函式返回值為空和函式返回值為指標的情況下,需要在前面定義該函式 函式的返回值為指標也必須在此定義,函式的返回值為void必須在此定義,返回值是整形或者其他基本型別不需要在此定義 函式功能 把格式化的資料寫入某個字串 函式原型 int sprintf char buffer,const cha...

函式的返回值為指標型別的時候

非常量引用的初始值必須為左值 一。c 例項 b show void test 以c 的某個自定義類為例 當show返回值是自定義型別後,呼叫該函式,會自動呼叫一次拷貝建構函式生成乙個臨時變數,即返回值 是乙個臨時變數二。c例項 typedef struct big thing big thing b...