关于双向循环链表存储100个StudentMark对象的内存计算疑问
问题修正与计算说明
你之前的推理漏了链表节点里指向StudentMark对象的指针,这是关键错误:
- 双向循环链表的每个节点需要包含三个部分:前驱指针(1字)、后继指针(1字)、指向StudentMark对象的指针(1字),所以单个节点占3字内存。
- 100个节点的总内存:
100 × 3 = 300字 - 每个StudentMark对象含1字ID+1字成绩,单个占2字,100个的总内存:
100 × 2 = 200字 - 两者总和:
300 + 200 = 500字
题目明确要求节点仅存指向StudentMark对象的指针,同时双向循环链表的节点必须靠前后指针实现双向循环的结构,所以每个节点是3个指针,不是你之前误以为的2个。少算的100字就是这100个指向数据对象的指针的内存占用。
内容的提问来源于stack exchange,提问作者coderoftheday
相关产品推荐
相关产品推荐

