易码技术论坛

 找回密码
 加入易码
搜索
查看: 1931|回复: 12

[求助] 释放部分malloc内存

[复制链接]
发表于 2008-9-13 22:38:14 | 显示全部楼层 |阅读模式
比如一个malloc申请的空间,我想把头3个字节的内存释放掉~请问前辈们应该怎么做?
发表于 2008-9-13 22:58:12 | 显示全部楼层
没办法做。。。
 楼主| 发表于 2008-9-13 23:11:18 | 显示全部楼层
还是,谢谢前辈。
发表于 2008-9-28 23:16:23 | 显示全部楼层
在网上找一下realloc函数的用法,也许对你有用
发表于 2008-9-29 11:46:41 | 显示全部楼层
没有用。
realloc也不能释放头3字节
发表于 2008-10-1 02:32:08 | 显示全部楼层
为什么要释放头三个字节呢??
 楼主| 发表于 2008-10-8 12:37:13 | 显示全部楼层
有一个设想,就是在一个内存空间里存储一个字符串,我把前几个字母删掉,然后字符串会向前移动将那几个位置补齐,我觉得这样很浪费,是不是可以指定的把前几个内存释放掉。
发表于 2008-10-8 13:03:35 | 显示全部楼层
你可以malloc一块新内存,然后只把后几个字符copy到新地址,然后free掉旧内存
 楼主| 发表于 2008-10-8 13:27:15 | 显示全部楼层
前辈,如果这样做的话,不是比移位操作还要费时么?
发表于 2008-10-8 13:28:48 | 显示全部楼层
那你就移位
realloc是完成不了你的意愿的,而且也比移位费时
发表于 2008-11-3 19:47:02 | 显示全部楼层
直接操作指针不就行啦?
 楼主| 发表于 2008-11-6 14:17:45 | 显示全部楼层
直接操作指针还是会导致空间的浪费啊。
发表于 2008-11-19 00:30:57 | 显示全部楼层
看你的程序中具体目标是什么呢?你的程序中字符串的规模,以及对空间和时间哪方面更看重呢?应该没有鱼熊兼得的方法吧。如果浪费的空间可以接受,我觉得不必太过计较。节约是好事,但完全没有必要为了节约而节约。频繁的释放和申请,可能会造成内存碎片以及申请释放需要的时间一样是在浪费。完成程序的设定目标才是最重要的。内存的堆操作更重要的是注意防止泄漏。
如果你需要的空间规模可以估计,我建议先申请一整片分割成多片然后由指针来管理和操作。不够的时候再申请增加。小心指针哦,注意不要随意放生野外破坏生态平衡,呵呵。

[ 本帖最后由 sharpapple 于 2008-11-19 00:38 编辑 ]
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

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

GMT+8, 2024-4-26 20:35 , Processed in 0.015637 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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