#include <unistd.h>
#include <stdio.h> int main(void) {
printf("================brk====================\n");
/* 以相对的方式分配内存(相对于上一次分配的结果)
* void *sbrk (intptr_t __delta)
* __delta 分配的内存大小,以字节为单位
* 如果传入 4 表示分配四个字节,如果传入-4释放四个字节
* 内存操作成功返回 调用sbrk前的堆尾指针 操作失败返回-1
* */
// 申请4个字节的内存
void *p1 = sbrk(4);
printf("%p\n", p1);
// 获取当前堆底指针
p1 = sbrk(0);
printf("%p\n", p1);
// 释放4个字节的内存
p1 = sbrk(-4);
printf("================brk====================\n");
/* 以绝对的方式分配内存
* int brk (void *__addr)
* __addr 要将堆底指针移动到的位置
* 例子
* 当前堆底指针 + 4 表示要分配四个字节的内存
* 当前堆底指针 - 4 表示要释放四个字节的内存
* 内存操作成功返回0 操作失败返回1
* */
// 获取当期堆底指针
p1 = sbrk(0);
printf("%p\n",p1);
// 分配4个字节的内存
brk(p1 + 4);
p1 = sbrk(0);
printf("%p\n",p1);
// 释放4个字节的内存
brk(p1 - 4);
p1 = sbrk(0);
printf("%p\n",p1); return 0;
}

最新文章

  1. PHP异常处理函数set_exception_handler()的用法
  2. String 与StringBuffer的区别与使用
  3. JeeSite是基于多个优秀的开源项目,高度整合封装而成的高效,高性能,强安全性的 开源 Java EE快速开发平台
  4. 求助:为什么我用360浏览器和UC浏览器打不开JAVA中的index.html文件? 一打开就显示浏览器首界页
  5. 理解 Android 本地数据存储 API
  6. QF——OC中的SEL类型和Block
  7. php利用SoapClient调用webservices
  8. Java解析JSON文件的方法 (二)
  9. Visual Studio 2017 离线安装方式
  10. lamp论坛搭建
  11. 转:【Java并发编程】之四:守护线程与线程阻塞的四种情况
  12. (一〇七)iPad开发之modal的切换方式与展示方式
  13. OAuth2.0记录
  14. [android]android项目的目录结构
  15. RPC框架原理简述:从实现一个简易RPCFramework说起(转)
  16. [UE4]瞬移对象
  17. 编写高质量代码:改善Java程序的151个建议 --[52~64]
  18. 自定制property
  19. Nginx的alias的用法及与root的区别
  20. 运营商DNS系统安全解决方案

热门文章

  1. Linux问题--docker启动mysql时提示3306端口被占用(kill不掉3306端口)
  2. JZOJ 3737. 【NOI2014模拟7.11】挖宝藏
  3. 两台linux服务器互相自动备份
  4. php pdo如何查询记录条数
  5. select省市联动+对应经销商、自定义箭头
  6. Vue3 ref 模板引用获取不到节点
  7. 空间数据库中ST_开头的来由
  8. c# 使用 Redis
  9. Prometheus学习笔记之设置存储时间为30天不生效
  10. 上传图片到Mongo数据库;从Mongo数据库下载图片显示到前端