动态内存分配函数malloc和关键字new
两者的不同:
1. malloc的参数是特定类型的字节大小,而new则自动计算此值而不必程序员操心。这样不仅方便而且能避免赋值错误。
2. new分配的动态内存可直接赋给特定类型指针,malloc返回void*必须经过类型转换才可以。
3. 如果new分配内存失败,会调用函特定处理错误的函数,malloc没有;
4. malloc分配内存之后不进行初始化,值是属随机的;而对于new,若定义为:int *p=new int(),则p指向的内存初始化为0。
关于堆的windows API:
- HeapCreate()
- HeapAlloc()
- HeapReAlloc()
- HeapFree()
- HeapDestroy()
- GetProcessHeaps()
- HeapValidate()
- HeapCompact()
- HeapLock()
- HeapUnlock()
- HeapWalk()
浙公网安备 33010602011771号