浅析Windows环境下堆表的空闲双向链表结构

  • 实验环境:
    • 操作系统: Windows 2000 Service Pack 4
    • 集成开发环境: Microsoft Visual C++ 6.0 SP6
  • 实验代码如下:
  •  1 #include <windows.h>
     2 #include <stdio.h>
     3
     4 int main(int argc, char **argv)
     5 {
     6     HLOCAL h1, h2, h3, h4, h5, h6;
     7     HANDLE hp;
     8     hp = HeapCreate(0, 0x1000, 0x10000);
     9
    10     // 为了方便显示堆的地址,这里把它打印出来
    11     printf("Heap address: %p\n", hp);
    12
    13     // 为了避免程序监测出调试器而是使用调试堆管理策略
    14     __asm int 3
    15
    16     h1 = HeapAlloc(hp, HEAP_ZERO_MEMORY, 3);
    17     printf("h1: %p\n", h1);
    18     h2 = HeapAlloc(hp, HEAP_ZERO_MEMORY, 5);
    19     printf("h2: %p\n", h2);
    20     h3 = HeapAlloc(hp, HEAP_ZERO_MEMORY, 6);
    21     printf("h3: %p\n", h3);
    22     h4 = HeapAlloc(hp, HEAP_ZERO_MEMORY, 8);
    23     printf("h4: %p\n", h4);
    24     h5 = HeapAlloc(hp, HEAP_ZERO_MEMORY, 19);
    25     printf("h5: %p\n", h5);
    26     h6 = HeapAlloc(hp, HEAP_ZERO_MEMORY, 24);
    27     printf("h6: %p\n", h6);
    28
    29     HeapFree(hp,0, h1);
    30     HeapFree(hp,0, h3);
    31     HeapFree(hp,0, h5);
    32
    33     HeapFree(hp, 0, h4);
    34
    35     return 0;
    36 }
  • 根据
时间: 2024-12-14 00:24:49

浅析Windows环境下堆表的空闲双向链表结构的相关文章

Windows环境下堆管理系统的快表介绍

实验环境: 操作系统: Windows 2000 Service Pack 4 集成开发环境: Microsoft Visual C++ 6.0 SP6 构建版本:Release版本 实验代码: 1 #include <stdio.h> 2 #include <windows.h> 3 4 void main() 5 { 6 HLOCAL h1, h2, h3, h4; 7 HANDLE hp; 8 9 // 启用快表 10 hp = HeapCreate(0, 0, 0); 11

《高可用MySQL》1 – Windows环境下压缩版MySQL安装

近日在读O'REILIY系列的<高可用MySQL>, 自然少不了主从(Master-Slave)配置和横向扩展相关的内容. Master-Slave这东西吧.在很多公司都是标配.开发中基本天天都用.遇到的问题自然也不少(如主从不同步,Master宕机).但操作权限很有限.有些东西,仅仅有自己看了.做了,才干真正知道原理是什么,也才干更好的去把握. 本文是高可用MySQL的第一篇读书笔记,主要记录Windows环境下压缩版MySQL(基于安装版的傻瓜式安装过程这里不再提及)的安装过程. 1. 从

python MySQLdb在windows环境下的快速安装、问题解决方式

使用Python访问MySQL,需要一系列安装 Linux下MySQLdb安装见 Python MySQLdb在Linux下的快速安装 http://blog.csdn.net/wklken/article/details/7271019 ------------------------------------------------------------- 以下是windows环境下的: 1.      安装数据库mysql 下载地址:http://www.mysql.com/downloa

《高可用MySQL》读书笔记1 – Windows环境下压缩版MySQL安装

近日在读O'REILIY系列的<高可用MySQL>, 自然少不了主从(Master-Slave)配置和横向扩展相关的内容.Master-Slave这东西吧,在许多公司都是标配,开发中基本天天都用,遇到的问题自然也不少(如主从不同步,Master宕机),但操作权限非常有限.有些东西,只有自己看了.做了,才能真正知道原理是什么,也才能更好的去把握. 本文是高可用MySQL的第一篇读书笔记,主要记录Windows环境下压缩版MySQL(基于安装版的傻瓜式安装过程这里不再提及)的安装过程. 1. 从官

第一部分:使用iReport制作报表的详细过程(Windows环境下)

提示:在有些板块,文中的图片看不到,建议到我的blog浏览文章:http://blog.csdn.net/jemlee2002/文章将会涉及3个方面的内容: 第二部分:使用Jasperreport作为报表控件开发胖客户端报表应用 第三部分:使用Jasperreport作为报表控件开发Web报表应用 1.前言 在网络上可以搜索到很多使用iReport和Jasperreport配合实现各种报表任务的文章,但是我觉得很少有一篇(几乎没有)做一个比较详细的介绍如何使用iReport制作报表的全过程,我所

windows环境下通过c++使用redis

1.Windows下Redis的安装使用 Redis是一个key-value存储系统.Redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用.本文中,作者分享了在Windows下进行安装和使用Redis的技巧. Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sortedset --有序集合)

基于Windows环境下cmd/编译器无法输入中文,显示中文乱码解决方案

基于Windows环境下cmd/编译器无法输入中文,显示中文乱码解决方案 两个月前做C++课设的时候,电脑编译器编译结果出现了中文乱码,寻求了百度和大神们,都没有解决这个问题,百度上一堆解释是对编译器进行设置之类的,结果没有一个有效果,暑假学习了用Dos来开发Java程序,输入cmd命令中dir(directory)进行查询操作时,显示了一堆中文乱码,原本是想重装系统的,因为电脑里面重要东西有点多,所以自己花了一段时间捣鼓了一下电脑,终于解决了如上两个问题,现在心里很开心,附上如下两幅图: cm

windows环境下10.2.0.1到11gr2 迁移升级

windows 环境下 10g 数据库到11g 数据库迁移 一.10g 环境做好迁移准备 在数据库中创建test表,并插入一条数据以便确认迁移是否成功 SQL> create table test(id number,name varchar(20)); SQL> insert into test(id,name) values(1,'test' 由于10.2.0.1版本不能直接升级到11gr2,所以需要先将源数据库升级为10.2.0.2 登陆rman C:\Documentsand Sett

python MySQLdb在windows环境下的快速安装

python MySQLdb在windows环境下的快速安装.问题解决方式 使用python访问mysql,需要一系列安装 linux下MySQLdb安装见 Python MySQLdb在Linux下的快速安装 http://blog.csdn.net/wklken/article/details/7271019 ------------------------------------------------------------- 以下是windows环境下的: 1.      安装数据库m