[问题] 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