鱼C论坛

 找回密码
 立即注册
查看: 2797|回复: 1

[技术交流] C标准库之内存操作函数——_heapwalk

[复制链接]
发表于 2014-9-18 23:38:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
功能:
_heapwalk函数用于扫描获得堆下一个项目信息

函数原型:
int _heapwalk (_HEAPINFO * entryinfo);

参数:
参数
说明
entryinfo
_HEAPINFO结构指针,指向堆信息结构
--:VC中该结构体成员含义如下:
_useflag成员: _FREEENTRY表示该项目已被用,_USEDENTRY表示未被使用
_size成员:该项目大小
_pentry成员:该项目入口(作为这个函数开始扫描的地址)

返回值:
成功返回状态常量值,否则把全局变量errno设置为ENOSYS
--:VC中常量值含义如下:
堆空                    ——-1
堆正常                 ——-2
堆错误开始                   ——-3
堆坏节点             ——-4
堆结束                 ——-5
堆坏点                 ——-6


要求:
函数
需要的头文件
_heapwalk
<malloc.h>

举例:
#include <stdio.h>
#include <malloc.h>

int main(void)
{
    _HEAPINFO hinfo;
    hinfo._pentry = NULL;//从起始地址开始查询

    while(_HEAPOK == _heapwalk(&hinfo))//如果堆正常
    {
        if(_USEDENTRY == hinfo._useflag)//已被使用
        {
            printf("已被使用\n");
        }
        else
        {
            printf("未被使用\n");
        }
        printf("堆入口为:%08X 堆大小为%d字节\n\n", hinfo._pentry, hinfo._size);
    }
    return 0;
}

运行效果:
_heapwalk效果.jpg

评分

参与人数 2荣誉 +15 鱼币 +15 贡献 +5 收起 理由
拈花小仙 + 5 + 5 热爱鱼C^_^
Angel丶L + 10 + 10 + 5 感谢楼主无私奉献!

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-9-19 01:18:05 | 显示全部楼层
不错支持下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 01:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表