v_ae 2017-09-22 09:43
浏览 466

Linux下sbrk分配内存的问题

sbrk的声明原型:void sbrk(intptr_t increment);
该函数分配内存是按照increment大小分配,不足4k(4096)字节按一页算(4k),
并且映射到物理内存。
以下是代码:(就是直接的打印内存地址)
#include
#include
void maps()
{
printf("查看/proc/%u/maps\n", getpid());
getchar();
}
void main()
{
void
p1 = sbrk(4);
printf("p1=%p\n", p1);
void* p2 = sbrk(4);
printf("p2=%p\n", p2);
void* p3 = sbrk(4);
printf("p3=%p\n", p3);
void* p4 = sbrk(4);
printf("p4=%p\n", p4);
void* p5 = sbrk(4);
printf("p5=%p\n", p5);

maps();

}
图片说明

为什么分配了23 * 4k(23页)个字节

64位机版本信息:Linux version 4.4.0-64-generic (buildd@lgw01-56) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) ) #85-Ubuntu SMP Mon Feb 20 11:50:30 UTC 2017

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 HLs设计手写数字识别程序编译通不过
    • ¥15 Stata外部命令安装问题求帮助!
    • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
    • ¥15 TYPCE母转母,插入认方向
    • ¥15 如何用python向钉钉机器人发送可以放大的图片?
    • ¥15 matlab(相关搜索:紧聚焦)
    • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
    • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
    • ¥50 需求一个up主付费课程
    • ¥20 模型在y分布之外的数据上预测能力不好如何解决