首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >索引到mmap?

索引到mmap?
EN

Stack Overflow用户
提问于 2012-02-22 06:54:12
回答 2查看 336关注 0票数 0

我正在尝试创建一个结构数组作为一种基本的缓存。

给定一个指向mmap的空*指针,mmap是否提供了索引到mmap的能力?我认为从概念上讲,mmap只是提供了一个内存块,但是我有点困惑,不知道我能用它做什么。我能把它想象成malloc吗?

代码语言:javascript
复制
void * mptr = mmap(NULL, 1024*1024, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);

感谢你在这里所做的任何澄清。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-22 07:03:44

是的,您可以将其视为malloc,但您必须使用munmap(mptr,1024*1024)而不是free(mptr)释放它。

如果要对其进行索引,请将其转换为另一种类型,例如char:

代码语言:javascript
复制
char *cptr = (char*) mptr; 

例如,您可以使用cptr10对其进行索引。

票数 1
EN

Stack Overflow用户

发布于 2012-02-22 06:57:32

不管你使用的是什么分配器(mmapmallocsbrk,...)你仍然需要一个指向内存的指针。在你可以使用内存之前,你必须告诉编译器什么类型的在内存中。使用C样式或C++强制转换来告诉编译器如何处理内存。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9386615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档