当前位置: 首页 > news >正文

编程达人Windows核心编程 第18章 演示如何使用堆

18_Heap.cpp

演示如何使用堆

18_Heap.cpp

演示如何使用堆

文章目录

  • 18_Heap.cpp


/*------------------------------------------------------------------------
18_Heap.cpp

演示如何使用堆
-----------------------------------------------------------------------*/
#include <tchar.h>
#include <windows.h>
#include <time.h>
#include <stdio.h>

void PrintArray(float fAarry[],int iCnt)
{
for (int i = 0; i < iCnt; i++)
printf(“[%03d]=%0.0f\t”, i, fAarry[i]);
return;
}

int _tmain()
{
srand((unsigned)time(NULL));

//在进程默认堆中申请内存
HANDLE hHeap = GetProcessHeap();
const int iCnt = 200;//申请fAarry内存块
float* fArray = (float*)HeapAlloc(hHeap, HEAP_ZERO_MEMORY, iCnt * sizeof(float));
for (int i = 0; i < iCnt; i++)fArray[i] = 1.0f * rand();//扩大fArry内存块的大小
fArray = (float*)HeapReAlloc(hHeap, HEAP_ZERO_MEMORY, fArray, 2 * iCnt * sizeof(float));
for (int i = 0; i < 2*iCnt; i++)fArray[i] = 1.0f * rand();//打印内存块的内容
printf("Default Heap:\n");
PrintArray(fArray, 2 * iCnt);//释放堆
HeapFree(hHeap, 0, fArray);//创建私有堆
hHeap = HeapCreate(HEAP_GENERATE_EXCEPTIONS, 0, 0);//申请内存块
fArray = (float*)HeapAlloc(hHeap, HEAP_ZERO_MEMORY, iCnt * sizeof(float));
for (int i = 0; i < iCnt; i++)fArray[i] = 1.0f * rand();//扩大fArry内存块的大小
fArray = (float*)HeapReAlloc(hHeap, HEAP_ZERO_MEMORY, fArray, 2 * iCnt * sizeof(float));
for (int i = 0; i < 2 * iCnt; i++)fArray[i] = 1.0f * rand();//打印内存块的内容
printf("Additional Heap:\n");
PrintArray(fArray, 2 * iCnt);HeapFree(hHeap, 0, fArray);
//私有堆需要手动释放
HeapDestroy(hHeap);_tsystem(_T("pause"));
return 0;

}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 无知是福-谈环境计算
  • 电机学习记录
  • 请说一下单例模式的概念及应用场景
  • DB-GPT开源项目文档入门
  • Python中的基本数据类型:构建坚实编程基石
  • centos7安装Kafka单节点环境部署一-ZooKeeper安装与配置
  • UE5-C++入门教程(二)---编写Editor类别的自定义模型实现小球规划路线的可视化
  • npm install报错,解决记录
  • 基于x86 平台opencv的图像采集和seetaface6的人脸朝向姿态估计功能
  • Spring OAuth2授权服务配置示例
  • 真题解析 | CCF CSP-J 2020 入门级 C++语言真题及答案
  • 算法笔记|Day29动态规划II
  • 基于x86 平台opencv的图像采集和seetaface6的人脸特征点功能
  • NextJs - 服务端/客户端组件之架构多样性设计
  • function call使用基础
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • Angular 响应式表单 基础例子
  • nginx 负载服务器优化
  • PaddlePaddle-GitHub的正确打开姿势
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • Python实现BT种子转化为磁力链接【实战】
  • Twitter赢在开放,三年创造奇迹
  • windows-nginx-https-本地配置
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 解析带emoji和链接的聊天系统消息
  • 我看到的前端
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • #Datawhale AI夏令营第4期#多模态大模型复盘
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (2022 CVPR) Unbiased Teacher v2
  • (26)4.7 字符函数和字符串函数
  • (十七)Flink 容错机制
  • (十三)Maven插件解析运行机制
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (算法)Travel Information Center
  • (五)Python 垃圾回收机制
  • (一) springboot详细介绍
  • (一)VirtualBox安装增强功能
  • (转载)CentOS查看系统信息|CentOS查看命令
  • (轉)JSON.stringify 语法实例讲解
  • ./和../以及/和~之间的区别
  • .apk 成为历史!
  • .NET CLR Hosting 简介
  • .Net Core缓存组件(MemoryCache)源码解析
  • .NET gRPC 和RESTful简单对比
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • .NET多线程执行函数
  • .net最好用的JSON类Newtonsoft.Json获取多级数据SelectToken
  • 。Net下Windows服务程序开发疑惑
  • /bin、/sbin、/usr/bin、/usr/sbin
  • [ 环境搭建篇 ] 安装 java 环境并配置环境变量(附 JDK1.8 安装包)