亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于鏈表動態分配問題

關于鏈表動態分配問題

C
DOUBLE_l 2016-12-01 17:35:20
假設我定義了一個能構建動態鏈表的函數,它能返回一個頭指針,我在主函數中返回值賦給同類型指針。 為什么在主函數中能輸出所有節點?函數調用后,分配的動態存儲空間不是沒有了嗎。求解釋,謝謝
查看完整描述

2 回答

已采納
?
新_day_day_new

TA貢獻18條經驗 獲得超6個贊

c中全局變量是存放在棧中,在程序結束時釋放存儲空間。函數中的形式參數和非static修飾的參數都是在動態存儲區中。它們在函數開始是被分配空間結束時釋放其空間。而用malloc等函數分配的空間由用戶需要時調用malloc動態分配并且由用戶自己釋放或者在整個程序結束時釋放。所以說雖然你是在函數中申請的空間但是不會隨函數結束而導致存儲空間被釋放。因為你沒有在函數里人為釋放。所以你返回的頭指針依然指向一個存在的空間,在主函數里還能輸出節點。

查看完整回答
1 反對 回復 2016-12-01
?
望遠

TA貢獻1017條經驗 獲得超1032個贊

這是堆??臻g分配的區別:
  1、棧:由操作系統自動分配釋放?,存放函數的參數值,局部變量的值等。其操作方式類似于數據結構中的棧;
  2、堆:?一般由程序員申請內存,也要由程序員釋放,而通過malloc申請的內存就屬于堆內存。


查看完整回答
3 反對 回復 2016-12-01
  • 2 回答
  • 1 關注
  • 1804 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號