请教关于realloc

coolduckplus 2003-10-19 02:47:26
如果重新分配的空间要比以前的大,是在以前分配的内存区之后紧接着分配增加的部分吗?
...全文
39 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
playboyxp 2003-10-19
  • 打赏
  • 举报
回复
如果有东西得话
会另外开辟内存
没东西应该再原来得地方改变大小
coolduckplus 2003-10-19
  • 打赏
  • 举报
回复
谢谢`
0bearblue 2003-10-19
  • 打赏
  • 举报
回复
不一定,如果以前分配的空间之后的内存区已被占用的话,就会在其他地方接着开辟一块空间
leyt 2003-10-19
  • 打赏
  • 举报
回复
不一定,看其后是否有足够的可用空间
Andy84920 2003-10-19
  • 打赏
  • 举报
回复





http://expert.csdn.net/Expert/topic/2315/2315448.xml?temp=.7774927
coolduckplus 2003-10-19
  • 打赏
  • 举报
回复

那如果要全部移动数据,耗费不是很大么?
TianGuangZao 2003-10-19
  • 打赏
  • 举报
回复
对,要保证重新分配的内存单元在逻辑上连续。这样指针运算才不会出错。
coolduckplus 2003-10-19
  • 打赏
  • 举报
回复
那新的内存区还是连续的,可以照样进行指针运算?
是不是如果原来的内存区后面如果已经被使用,则全部数据都要搬到另外一片区去?
Darkay_Lee 2003-10-19
  • 打赏
  • 举报
回复
不一定,但是原来的内容自动般到新的地方了。
kudoxinyiji 2003-10-19
  • 打赏
  • 举报
回复
增长后容量如果不够的话,会自动移动的。
njuhuangmy 2003-10-19
  • 打赏
  • 举报
回复
这一点没有保证 的 :)

Wolf0403 2003-10-19
  • 打赏
  • 举报
回复
如果无法原地展开,则新分配一块地址并且拷贝原来的内容
sharkhuang 2003-10-19
  • 打赏
  • 举报
回复
是这样的!返回的 指针是新指针,但是以前的类容在这个新指针指的地址里面!你可以加上以前偏移量,就可以把新类容考进去了!

我用过,用之前写了测试函数,很简单。现在代码用的很好!

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧