就算自己设计内存池,我觉得也不应该提供这个功能。建议百度一下动态内存分配算法。
另外你可能认为这样做会更省内存。 但实际上并不如此。前面我已经说malloc返回的是一段连续的内存。你应该知道内存碎片的概念。例如你malloc了100k的内存,如果系统中只剩下两块80k,你也会malloc失败。 那么如果允许从中间释放,原来的连续的内存,将非常容易变成碎片。
[quote=引用 5 楼 與蘤舊縐 的回复:] [quote=引用 4 楼 真相重于对错的回复:]想一下,为什么要这么做,这么做的目的是什么? 如果这么做可以,带来的后果是什么?
[quote=引用 4 楼 真相重于对错的回复:]想一下,为什么要这么做,这么做的目的是什么? 如果这么做可以,带来的后果是什么?
想一下,为什么要这么做,这么做的目的是什么? 如果这么做可以,带来的后果是什么?
简单来说:洗洗睡吧。 具体来说:操作系统本身就对用户态内存分配有限制,所有内存页都是操作系统管的,用户态管不着。再加上 C 运行库可能对从系统那获得的内存再做其它管理,最后指针才到用户代码那里,用户代码真的没什么好做的。(不过 C 提供了 realloc,可能可以满足你的部分需求,实在不行就写个内存池自娱自乐好了)
69,336
社区成员
243,078
社区内容
加载中
试试用AI创作助手写篇文章吧