資料結構中關於 malloc以及free的問題

2021-09-12 08:35:29 字數 571 閱讀 2048

資料結構嚴蔚敏 佇列基本操作 dequeue函式

status dequeue

(linkqueue & q, qelemtype & e)

該函式需要實現刪除元素的功能,作者使用了乙個輔助變數,並給該變數申請了記憶體空間

queueptr p = (queueptr)malloc(sizeof(qnode));

然後又給該變數賦值

p = q.front->next;

最後free(p)實際上free的是佇列中隊頭元素的記憶體空間,但是p申請的記憶體空間卻沒有free掉

該函式不需要malloc語句一樣可以實現功能

此處為p申請記憶體空間是否存在不妥?

free(p),釋放的是指標p所指記憶體位址的空間,釋放空間大小與malloc中申請的一致

倘若對p申請記憶體空間後,又將p指向別的位址,此時如何釋放開始申請的記憶體空間?

malloc 結構體 資料結構 鍊錶(思路)

1 寫在前面 去學習鍊錶,發現自己對c語言的指標和結構體的理解還是不夠透徹,現將今天學習所得分享給大家。涉及到的知識為無頭鍊錶,不涉及鍊錶的插入刪除等知識,只是將鍊錶的思想理解了一遍。2.鍊錶 1 概括 鍊錶 顧名思義,就像一條鍊子一樣,每乙個圈的頭連著上乙個圈的尾部。2 組成 鍊錶是由乙個乙個的節...

關於資料結構

定義,性點 二叉樹是一種樹形結構,其特點是每個結點至多只有兩顆子樹,並且二叉樹的子樹有左右之分。非空二叉樹葉子結點數等於度為2的結點的個數加1,即n0 n2 1 非空二叉樹上第k層上至多有2 k 1 個結點。高度為h的二叉樹至多有2 h 1個結點 樹的最大度為2 樹的高度 從所有葉節點開始數高度到根...

malloc 結合內部資料結構講解邏輯實現原理

malloc 對虛擬位址的管理。邏輯上簡單說明一下,分為兩部分。第一部分是堆的資料,比如malloc 1024 也就是1024個byte,每個塊實際會加上16個位元組的開銷。也就是這個塊是1024 16 1040個位元組。堆上的各個資料塊是連續儲存的。因此 sbrk base 到 brk 即整個堆資...