易码技术论坛

 找回密码
 加入易码
搜索
查看: 1375|回复: 4

[求助] 前辈们~c的有关重新分配空间的问题

[复制链接]
发表于 2008-9-13 22:16:02 | 显示全部楼层 |阅读模式
前辈们,请问realloc 在重新分配一个比当前分配的空间小的空间时,从当前空间没用的尾缩小空间大小么?
如果是,
能不能写一段程式,让一个连续空间比如8*sizeof(int),第一个int是空,缩小空间,使其从第二个位置开始?
就是比如现在是
1 2 3 4 5 6 7 8
经过修改变为
   2 3 4 5 6 7 8
然后重新分配
变为
2 3 4 5 6 7 8
发表于 2008-9-13 22:59:46 | 显示全部楼层
不可以
realloc要保证重新分配后,数据内容不变
就是说,如果重新分配后,地址变了,会把原内容copy过来
 楼主| 发表于 2008-10-8 12:38:47 | 显示全部楼层
请问lee前辈,
如果realloc的大小比原来malloc的大小还要小呢?是不是把后面的内容去掉?
发表于 2008-10-8 13:00:45 | 显示全部楼层
这个,一试便知。不同的实现可能有差别
如果realloc给分配了新地址,那么只把指定字节数的内容copy到新地址
如果realloc没有给分配新地址,那么,内容没有变化
 楼主| 发表于 2008-10-8 13:27:52 | 显示全部楼层
谢谢前辈~
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-3-29 12:57 , Processed in 0.009266 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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