return不能返回指向棧記憶體的指標

2021-05-28 17:10:41 字數 518 閱讀 3526

是臨時的  

當跳出棧時,其指標對應的值被下次壓棧替換掉  

可能每次出棧時,系統可能會對剛才壓棧的記憶體初始化

#include

uisng namespace std;

char* getstring()

int main()

此程式中,return返回的是指向棧記憶體的位址,程式編譯警告,因為給該內存在函式結束時自動消亡。

是指動態記憶體堆,,c++中由new和delete來分配和釋放,c中由malloc和free來分配和釋放,

它的生命週期是動態的,可以由程式設計師來建立和銷毀。當然程式結束自動釋放。

char *getmemory(int num)

void main(void)

此程式中,return返回的是堆記憶體。函式結束時該記憶體還在,所以程式正常。

return的返回值

1.return在if else語句裡面相當於whitch的break 截斷 function test num else test 2.在函式裡面的return返回值可以是數字,字串,變數,也可以函式,也可以做簡單的運算等 function test2 函式在堆裡執行,函式執行完以後會被銷毀,但r...

return返回值呼叫

函式中的返回值 函式中的返回值是由return來決定的 函式中可不可返回兩個值?可以函式中沒有return就沒有返回值,呼叫函式得到的結果就是none 函式中返回多個值,直接寫在return後面用逗號隔開就可以的 當函式執行到return的之後,那麼會直接跳出函式,返回結果 def func a,b...

返回型別和 return 語句

return 語句終止當前正在執行的函式並將控制權返回到呼叫該函式的地方。return 語句有兩種形式 return return expression 不要返回區域性物件的引用或指標 函式完成後,它所占用的儲存空間也隨之被釋放掉。因此函式終止意味著區域性變數的引用和指標將指向不再有效的記憶體區域 ...