求助linux下mmap分内存问题

WilliamCode 2018-11-12 06:03:39
代码如下:
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/mman.h>

int main(){
int *p = (int*) mmap(NULL,sizeof(int),PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS,0,0);
int *p2 = (int*) mmap(NULL,sizeof(int),PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS,0,0);
printf("%p %p\n",p,p2);
}


运行结果如下:
xie@xie:~/uc/day05$ a.out
0x7f6e242db000 0x7f6e242da000

问题是:内存好像没有分配在栈区;而且我只申请了4字节的内存,但是分配了2k字节,是不是我哪里写错了?求教大神
...全文
70 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
老马何以识途 2018-11-13
  • 打赏
  • 举报
回复
這只是表示兩塊内存起始地址相差2K,而不是分配的大小

23,125

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧