
malloc内存分配
请问:采用预先分配一块大内存,在需要新的小内存就从其中获取。等全部使用完毕,再释放。如何用C代码实现。在需要频繁使用多个较少的临时内存空间时,常常需要预先分配一块大内存,...
请问:采用预先分配一块大内存,在需要新的小内存就从其中获取。等全部使用完毕,再释放。如何用C代码实现。
在需要频繁使用多个较少的临时内存空间时,常常需要预先分配一块大内存,在需要新的小的内存时就从预先分配的大内存获取,等全部使用完毕后再一次性释放,避免频繁的分配和释放内存,同时减少内存碎片,请根据以上描述,写出该算法 展开
在需要频繁使用多个较少的临时内存空间时,常常需要预先分配一块大内存,在需要新的小的内存时就从预先分配的大内存获取,等全部使用完毕后再一次性释放,避免频繁的分配和释放内存,同时减少内存碎片,请根据以上描述,写出该算法 展开
展开全部
先用malloc分配一段内存,其它要用的时候直接指向这一段中未被使用的部分,用完用memset()把那一段初始化一下,最后再一起释放

2023-11-22 广告
第五代双倍数据速率DDR5双列直插式内存模块是一种高速、高性能的内存模块,适用于需要高带宽和低延迟的应用场景。与前几代内存模块相比,DDR5双列直插式内存模块具有更高的数据传输速率和更低的功耗,同时提供了更大的内存容量和更高的可靠性。在数据...
点击进入详情页
本回答由东莞市友贸实业有限公司_提供
展开全部
首先,我也很菜。
其次,看了你的描述,你确信可以这样做吗?因为malloc是一个库函数,这个函数的功能,是通过内部调用了VirtualAlloc完成的,并且分配的内存不能共享。
所以我不确定用malloc是不是可以。
要么你试试GlobalAlloc,这个函数返回一个句柄,通过这个句柄,两个进程可以共享一块内存。用完了,使用GlobalFree释放一下。
其次,看了你的描述,你确信可以这样做吗?因为malloc是一个库函数,这个函数的功能,是通过内部调用了VirtualAlloc完成的,并且分配的内存不能共享。
所以我不确定用malloc是不是可以。
要么你试试GlobalAlloc,这个函数返回一个句柄,通过这个句柄,两个进程可以共享一块内存。用完了,使用GlobalFree释放一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
真正要实现这个功能,实际上并不简单,但有时也很有必要,如游戏的内存管理规则。你说的这个功能实际上时内存池,你可以搜索一些关于这类方面的知识。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询