[英]Cross-platform memory allocator sbrk/virtualalloc
我想知道是否有一个比malloc / free低一级的跨平台分配器。
例如,我想要在Linux中简单地调用sbrk,而在Windows中简单地调用VirtualAlloc(可能还有两个类似的syscall,但这只是一个例子)。
我对所讨论的功能不熟悉,但:
#if defined (__WIN32__)
#define F(X) VirtualAlloc(X)
#elif defined (__LINUX__) /* or whatever linux's define is */
#define F(X) sbrk(X)
#endif
不知道语法是否为100%(我是宏和c语言的新手),但一般的想法应该可行。
C给您malloc
和free
,C ++除了C提供的内容外,还添加了new
, new[]
, delete
和delete[]
以及放置形式。
仅此而已,您就超出了适当语言的范围。 您要么在OS领域涉足,要么在汇编器中默默无闻。 毫无疑问,这种事情是跨平台的。
我想知道如果存在这样的分配器将会有什么好处?
您可以实现自己的malloc / free而不用担心底层操作系统
并且您想要另一个跨平台的解决方案来实现这一点和另一个...您明白了。 这不是一个可行的方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.