动态内存分配函数malloc和关键字new

两者的不同:

1. malloc的参数是特定类型的字节大小,而new则自动计算此值而不必程序员操心。这样不仅方便而且能避免赋值错误。

2. new分配的动态内存可直接赋给特定类型指针,malloc返回void*必须经过类型转换才可以。

3. 如果new分配内存失败,会调用函特定处理错误的函数,malloc没有;

4. malloc分配内存之后不进行初始化,值是属随机的;而对于new,若定义为:int *p=new int(),则p指向的内存初始化为0。

关于堆的windows API:

 

  1. HeapCreate() 
  2. HeapAlloc()
  3. HeapReAlloc()
  4. HeapFree()
  5. HeapDestroy()
  6. GetProcessHeaps()
  7. HeapValidate()
  8. HeapCompact()
  9. HeapLock()
  10. HeapUnlock()
  11. HeapWalk()

 

posted @ 2017-02-06 17:40  wuyefeima  阅读(101)  评论(0)    收藏  举报