GlobalAlloc
Windows API函数
GlobalAlloc是一个Windows API函数。该函数从堆中分配一定数目的字节数。Win32内存管理器并不提供相互分开的局部和全局堆。提供这个函数只是为了与16位的Windows相兼容。简称全局堆分配
语法
HGLOBALGlobalAlloc(
UINTuFlags, // 分配属性(方式)
DWORDdwBytes // 分配的字节数
);
参数
uFlags
指定如何分配内存,若指定为0,则是默认的GMEM_FIXED.这个值可以是下面其中一个或几个位标识(那些指明不兼容的组合除外)
标识的含意
以下标识已经过时,均被忽略。这些标识只是为与16位Windows相兼容而提供的:
dwBytes
指定要申请的字节数.若该参数为 0 且参数 uFlags 指定为 GMEM_MOVEABLE 则该函数返回一个内存对象的句柄,该内存对象被标识为discarded(可抛弃的)。
返回值
若函数调用成功,则返回一个新分配的内存对象的句柄
若函数调用失败,则返回NULL。可调用GetLastError以获得更多错误信息。
注解
如果堆内没有足够的空间满足请求,函数将返回 NULL.因为NULL是用于标明错误的,所以不会分配虚拟0地址.
因此很容易检测出是否在使用一个NULL指针
使用此函数分配内存可以保证8字节的边界.所有的内存均在执行访问时创建;不需要特别的函数来动态执行所产生的代码。
函数调用成功,将至少分配所需内存.若实际分配量超过所需,则内存仍然能够充分利用之.可用函数 GlobalSize 来确定实际所分配的字节数。
可使用 GlobalFree 来释放内存。
需求
参考资料
最新修订时间:2022-06-24 20:23
目录
概述
语法
参数
参考资料