[問題] Linked List的Space

看板C_and_CPP作者 (Sizukani)時間9年前 (2014/12/20 20:15), 編輯推噓3(307)
留言10則, 7人參與, 最新討論串1/1
大家好, 我想問一下, 如果是下列的struct實作linked list的話, 需要消耗多少容量? struct Node{ int data; Node *next; Node *prv; }; 接著我創出宣告 Node* begin; 並對begin做sizeof,出來的結果是4byte, 可是linked list不是前後都會儲存prv和next的address嗎? 那些容量跑到哪裡去了? 如果我今天用單向的Linked List和Double Linked List, 所花的容量是一樣的嗎?(Node數一樣,只是單純struct多了Node *prv) 謝謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.250.190.206 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1419077701.A.87B.html

12/20 20:16, , 1F
你應該sizeof(Node) sizeof(指標)都是一樣的
12/20 20:16, 1F

12/20 20:19, , 2F
oh! 抱歉疏忽了 單向是8bytes 雙向是12Bytes
12/20 20:19, 2F

12/20 20:20, , 3F
謝謝你~ 我就想說不是有存地址嗎
12/20 20:20, 3F

12/21 10:27, , 4F
你還是沒有搞懂阿.... sizeof(Node)跟sizeof(*Node)不同
12/21 10:27, 4F

12/21 12:52, , 5F
指標不管是指向什麼型態 大小都一樣
12/21 12:52, 5F

12/21 15:10, , 6F

12/21 15:14, , 7F
呃,漏看推文,看來原 PO 應該都搞懂了。
12/21 15:14, 7F

12/22 16:08, , 8F
加油,這真的不好學
12/22 16:08, 8F

12/23 01:25, , 9F
因為你搞錯了 你這種用法是問「一個指標多大」
12/23 01:25, 9F

12/23 01:25, , 10F
而不是「這個指標指向的結構多大」 一個指標通常4byte
12/23 01:25, 10F
文章代碼(AID): #1KbMX5Xx (C_and_CPP)