[問題] Linked List的Space

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

Links booklink

Contact Us: admin [ a t ] ucptt.com