鱼C论坛

 找回密码
 立即注册
查看: 2946|回复: 1

对于这段代码不解。

[复制链接]
发表于 2013-12-10 15:29:36 | 显示全部楼层 |阅读模式
4鱼币
本帖最后由 未来丶梦而已 于 2013-12-10 15:30 编辑

  1. void StaffManage::AddIndexItem(const IndexType &e) //在索引表中增加索引项
  2. {
  3. if(count>=maxsize) //索引表溢出
  4. {
  5. maxSize = maxSize + NUM_OF_INCREMENT; //增加索引表容量
  6. IndexType *tmpIndexTable = new IndexType[maxSize]; //临时索引表
  7. for (int i = 0;i<count;i++)
  8. tmpIndexTable[i] = indexTable[i]; //复制索引表
  9. delete []indexTable; //释放索引表存储空间
  10. indexTable = tmpIndexTable; //指向临时索引表
  11. }
  12. indexTable[count++]=e;
  13. //加入到索引表中
  14. }
复制代码
把原来的索引表释放到新的索引表
为什么把原来的索引表释放了。
还要指向新的。再添加东西进索引表。
为什么不直接在原来的索引表加内容。

最佳答案

查看完整内容

可能是因为//索引表已经溢出了,再也不能装新的东西了, 所以要建立一个新的临时索引表, 以前那个自然就没用了,留着占地方,自然就要释放掉咯, 然后就可以指向一个新的,比原来那个更大的,用来存更多东西。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-12-10 15:29:37 | 显示全部楼层
可能是因为//索引表已经溢出了,再也不能装新的东西了,
所以要建立一个新的临时索引表,
以前那个自然就没用了,留着占地方,自然就要释放掉咯,
然后就可以指向一个新的,比原来那个更大的,用来存更多东西。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-4 09:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表