windowsapi函数库:Windows API一日一练(78)HeapAlloc函数



  前面已经介绍两个分配内存个全局内存分配个是私有内存分配在进程私有内存里分配里又有两种分配情况种上基于栈式内存分配种是基于堆内存分配在c里使用堆内存分配是使用HeapAlloc来实现也就是实现操作符分配内存时会调这个

  HeapAlloc声明如下:

WINBASEAPI
__bcount(dwBytes)
LPVOID
WINAPI
HeapAlloc(
    __in HANDLE hHeap,
    __in DWORD dwFlags,
    __in SIZE_T dwBytes
    );


  hHeap是进程堆内存开始位置

  dwFlags是分配堆内存标志

  dwBytes是分配堆内存大小

  例子如下:

#001  //
#002  //分配堆内存
#003  //蔡军生 2007/11/26 QQ:9073204 深圳
#004  void MemHeap(void)
#005  {
#006         //
#007         const  nHeapSize = 1024;
#008         PBYTE pNewHeap = (PBYTE) ::HeapAlloc(GetProcessHeap, 0, nHeapSize);
#009        
#010          (pNewHeap)
#011         {
#012               //测试分配堆内存
#013               ZeroMemory(pNewHeap,nHeapSize);
#014               memcpy(pNewHeap,_T("分配堆内存成功\r\n"),
#015                    (_T("分配堆内存成功\r\n")));
#016               OutputDebugString((LPWSTR)pNewHeap);
#017 
#018               //释放内存
#019               BOOL bRes = ::HeapFree(GetProcessHeap, 0, pNewHeap);
#020                (bRes != TRUE)
#021               {
#022                    OutputDebugString(_T("释放内存出错\r\n"));
#023               }
#024         }
#025 
#026  }


Tags:  heapallocmalloc heapalloc windowsapi函数 windowsapi函数库

延伸阅读

最新评论

发表评论