Globalalloc/LocalAlloc与HeapAlloc、malloc与new

来源:互联网 发布:什么软件可以看美股 编辑:程序博客网 时间:2024/05/16 14:41

1、Globalalloc、LocalAlloc与HeapAlloc

Globalalloc、LocalAlloc是为了与Win16兼容才保留的,在Win32下不要使用。Win16下分配内存可以有两种,全局的和局部的,例如GlobalAlloc和LocalAlloc,但在Win32的时代这些函数已经被废弃了。在Win32中所有的进程所使用的内存区域是相互隔离的,每个进程都拥有自己的地址空间。而且系统使用了页面交换功能,就是利用磁盘空间来模拟RAM,在RAM中数据不使用时将会被交换到磁盘,在需要时将会被重新装入RAM。

Win32中,应使用新的内存分配函数HeapAlloc()以得到更好的支持,GlobalAlloc()、LocalAlloc()还可以用,主要是为了兼容。

2、malloc与new

malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。对于非内部数据类型的对象而言,new能完成动态内存分配和对象的初始化工作,即会自动调用对象的构造函数;delete能完成释放内存和清理对象工作,即会自动调用对象的析构函数。

c/c++内存分配函数(运算符)比windows内存分配函数少了一些特性,如整理内存。

转载出处:http://blog.sina.com.cn/s/blog_6cb8c15e0100t5g9.html
0 0
原创粉丝点击