LPVOID HeapAlloc(
  HANDLE hHeap,     
  DWORD dwFlags,  
  SIZE_T dwBytes //number of bytes to allocate

请教既然HeapAlloc的参数指定了分配的字节数,为什么还需要HeapSize呢?

解决方案 »

  1.   

    HeapSize是用来得到你用HeapAlloc所分配的内存的大小的函数
    你确实知道dwBytes的大小,HeapSize只是系统也对应提供的,多一种选择,或许你会需要这个函数,比如你在一个函数中调用HeapAlloc分配了一块内存,dwBytes参数是你用一个局部变量指定的而不是以硬数字指定的,之后你需要把得到内存指针传到了另一函数,在另一函数中,你又需要得到此内存块的大小,就可以调用HeapSize而不必把SIZE_T的变量也传过来。
      

  2.   

    HeapAlloc 和 HeapFree 配套使用一般最好不用HeapAlloc,使用new 也会调用HeapAlloc,而且new对内存分配的管理更加优化