中易网

C语言中free能否只释放掉部分内存

答案:3  悬赏:10  
解决时间 2021-12-16 00:44
比如说char*p =malloc(8);
strcpy(p,"abc");
能否只把未使用的内存释放掉,留下"abc"?
最佳答案
看了半天总算明白你的意思了。。。
常规情况下不行的,除非你自己另外实现下内存分配算法。所以这就要求程序员合理使用内存,比如你能确定每次最多就3个字符,那申请的时候就应该只申请4。总之,确保够用,但不要浪费。就和我们平时吃饭打饭一个道理啊~
全部回答
只要是经过malloc申请的 在free后都会成功释放 这个是说 可以在程序中再次malloc 比如 你的剩余内存还有100m 这时你malloc了80m 再尝试malloc 30m 肯定会失败的 但你如果把前一个free了 再malloc30m 就一定会成功了。 不过 这时如果你去看系统剩余内存 不一定是准确的。 因为 一方面有延时 另一方面 系统内存管理也是要时间的。
内存是按块分配的,在内存管理里面,所有可以分配的内存就像诸多果实一样挂在一颗大树上。 分配内存的时候,会按照所给的大小在树上找到合适大小的果实;在释放的时候,将整个果实全部回收。 没有买梨子吃一口再还给店家的道理的。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
1998年02月24日出生的桃花运哪个月最好
衍義的意思是什么?衍義的释义是什么啊?
<<经济法>>中善意第三人准确定义是什么?
跟一个老外分手好长时间了,他聊天时还总用de
活命的意思是什么啊?请解释下!
罹辜的意思是什么?罹辜的释义是什么啊?
如何只用CSS做到完全居中
最终幻想7第一次坐小野马是去哪里,什么地方
玩cs野战会不会弄脏衣服
怎么从小当明星?
南灣子船的意思是什么?南灣子船的释义是什么
山题的意思是什么啊?请解释下!
今天中午睡了午觉起来去上厕所,结果晕倒了,一
js中apply和call的区别
葡萄树春季移栽当年能结果么
推荐资讯
铨土的意思是什么啊?请解释下!
頒贈的意思是什么?頒贈的释义是什么啊?
恶作剧之吻1那一集树在雨中吻了湘琴?
关于索尼行号PCG—6R1T笔记本电脑
看鏡的意思是什么?看鏡的释义是什么啊?
柳湖的意思是什么啊?请解释下!
睦婣的意思是什么啊?请解释下!
游兴的意思是什么啊?请解释下!
啊哟的意思是什么啊?请解释下!
穩腳的意思是什么?穩腳的释义是什么啊?
宝马528改成535上路交警管不管
十八學士的意思是什么?十八學士的释义是什么
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?