看板 C_and_CPP 關於我們 聯絡資訊
大家好, 我想問一下, 如果是下列的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
fireslayer: 你應該sizeof(Node) sizeof(指標)都是一樣的 12/20 20:16
rex5207: oh! 抱歉疏忽了 單向是8bytes 雙向是12Bytes 12/20 20:19
rex5207: 謝謝你~ 我就想說不是有存地址嗎 12/20 20:20
q82419: 你還是沒有搞懂阿.... sizeof(Node)跟sizeof(*Node)不同 12/21 10:27
tsoahans: 指標不管是指向什麼型態 大小都一樣 12/21 12:52
ACMANIAC: http://codepad.org/dEbsA8en 12/21 15:10
ACMANIAC: 呃,漏看推文,看來原 PO 應該都搞懂了。 12/21 15:14
apologize: 加油,這真的不好學 12/22 16:08
Killercat: 因為你搞錯了 你這種用法是問「一個指標多大」 12/23 01:25
Killercat: 而不是「這個指標指向的結構多大」 一個指標通常4byte 12/23 01:25