VC++中GlobalAlloc()、malloc()和new()函数之间区别
2011-08-23 09:29
316 查看
VC++中GlobalAlloc()、malloc()和new()函数都可以用来实现内存的动态分配,那么它们之间有什么区别呢?
三者的区别主要有以下几点:
1、GlobalAlloc()函数在程序的堆中分配一定的内存,是Win16的函数,对应于系统的全局栈,而在Win32中全局栈和局部堆的区别已经不存在了,因此不推荐在Win32中使用该函数。
2、malloc()是标准库函数,而new则是运算符,它们都可以用于申请动态内存。
3、new()实际上调用的是malloc()函数。
4、new运算符除了分配内存,还可以调用构造函数,但是malloc()函数只负责分配内存。
对于非内部数据类型的对象而言,只使用malloc()函数将无法满足动态对象的要求,因为malloc()函数不能完成执行构造函数的任务。
三者的区别主要有以下几点:
1、GlobalAlloc()函数在程序的堆中分配一定的内存,是Win16的函数,对应于系统的全局栈,而在Win32中全局栈和局部堆的区别已经不存在了,因此不推荐在Win32中使用该函数。
2、malloc()是标准库函数,而new则是运算符,它们都可以用于申请动态内存。
3、new()实际上调用的是malloc()函数。
4、new运算符除了分配内存,还可以调用构造函数,但是malloc()函数只负责分配内存。
对于非内部数据类型的对象而言,只使用malloc()函数将无法满足动态对象的要求,因为malloc()函数不能完成执行构造函数的任务。
相关文章推荐
- VC++中GlobalAlloc()、malloc()和new()函数之间区别
- VC常用内存分配函数HeapAlloc,GlobalAlloc,LocalAlloc,VirtualAlloc,Malloc,New的比较
- malloc 函数和new的区别
- malloc() free()函数 和 new delete运算符的区别
- globalalloc、malloc和new的区别
- 内存分配秘籍:new,malloc,globalAlloc的区别与详解
- C++内存分配秘籍—new,malloc,GlobalAlloc的区别与详解
- c++ 那么多内存分配函数(GlobalAlloc,new,malloc等)的关系
- C++内存分配秘籍—new,malloc,GlobalAlloc的区别与详解
- VC内存分配:GlobalAlloc、new、malloc、HeapAlloc
- globalalloc、malloc和new的区别
- new delete 是运算符,malloc,free是函数(区别)
- C语言中 malloc,calloc 和 realloc 函数之间的区别
- globalalloc、malloc和new的区别
- globalalloc、malloc和new的区别
- VC常用内存分配函数HeapAlloc,GlobalAlloc,LocalAlloc,VirtualAlloc,Malloc,New的异同
- 内存分配秘籍:new,malloc,globalAlloc的区别与详解
- new,delete和malloc,free之间的区别 (转)
- new/delete与malloc/free之间的联系和区别
- malloc和new之间的区别