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

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

c語言銷毀棧的函數。大家看看寫的對不?

c語言銷毀棧的函數。大家看看寫的對不?

守候你守候我 2019-02-06 10:07:31
c語言銷毀棧的函數。大家看看寫的對不?
查看完整描述

2 回答

?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

這兩個函數一個是銷毀棧DestroyStack,一個是清空棧ClearStack
銷毀是把整個棧都釋放掉,清空只是把棧里元素清除。
因為你的棧元素是int型基本變量,所以棧元素內容是直接存放在??臻g的,并沒有另外申請內存保存棧元素,所以在從棧里移除棧元素時,不需要調用free函數。
實際上你的DestroyStack可以很直接的如下:
int DestroyStack(stack &s)
{
free(s.base); //釋放??臻g,這里假設s.base是個指針而不是數組
//如果s結構也是動態申請的,也需要執行free(s);
}
至于ClearStack,書上寫的是沒問題的,清空棧,不是要釋放??臻g,而是把棧里的元素都清除,最直接的做法就是把棧頂指針指向棧底指針,棧頂和棧底指針相同時,就表示棧內無元素,??臻g還是保留,下次可以繼續把棧元素壓棧和彈棧。

查看完整回答
反對 回復 2019-03-16
  • 2 回答
  • 0 關注
  • 951 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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