void ClearStack(SqStack &S)
{
S.top=S.base;
}
這樣就能清空,那已經用過的那些空間不用free嗎?我記得malloc出來的都是堆上的空間,堆上的空間都是要手動釋放的
uj5u.com熱心網友回復:
肯定是要free的,這里只是把堆疊清空了,沒有回收記憶體,會導致記憶體泄漏uj5u.com熱心網友回復:
資料結構的書上就是這樣寫的
uj5u.com熱心網友回復:
書上只是示例作用,而且不同的場景,需要不同的考慮uj5u.com熱心網友回復:
需要釋放,如果程式清空堆疊后,直接退出了。那么系統會考慮釋放你申請的動態空間~uj5u.com熱心網友回復:
清空堆疊,不同于銷毀堆疊,清空意味著以后可能還要往里放資料uj5u.com熱心網友回復:
所謂順序表是指分配一整塊記憶體,像陣列那樣平均分成若干個小的元素,它們將被用于存盤資料在使用期間,順序表不存在釋放一說,它所分配的記憶體是固定存在的
你只是根據一個下標標志位來確定當前前幾個元素空間被使用
后面下標沒標到的地方都只能閑置
順序表的特點就是元素的規格是一致的,所以從記憶體排列來說是有序的,
所以你可以直接使用下標定位到某一個元素的記憶體
這樣就便于你查找和修改某一個元素的內容
但是順序表的缺點就在于,你哪些未使用的記憶體必然造成浪費
而且每次想要插入和洗掉也會非常麻煩,需要做元素的位移
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/50765.html
標籤:C語言
上一篇:【求助】C語言用函式求一維陣列最大,要求在主程式中呼叫。
下一篇:新人小白瑟瑟發抖,希望大佬求解
