作 者: kedengfeng 所属论坛: C/C++ 回复次数: 7 发表时间: 2001-05-10 19:37:00
都是用来分配空间的听说分配方法不同请指教
------------------------------------------------------------------------------------- 第1楼回复人:mountlin 2001-05-10 19:51:00 返回顶部 malloc只是简单的分配内存空间,是c的标准分配空间的方法。 new不仅分配空间,对于对象还会调用构造函数构造一`个实例,是c的标准方法。以上是ansi标准定义的,可用于一般的任何平台。 GlobalAlloc是在全局堆中分配空间,它有更多的选项,可以参见msdn GlobalAlloc是win32API,只能用于windows平台。 第2楼回复人:mountlin 2001-05-10 19:53:00 返回顶部 更正:new是c++的标准方法 第3楼回复人:hello_wyq 2001-05-11 23:09:00 返回顶部 mountlin(怎么办) 说得很有道理。因此说new 要比 malloc好,因为它还初始化! 第4楼回复人:renwind 2001-05-12 10:21:00 返回顶部 补充:delete可以自动调用析构函数,free不可以 第5楼回复人:tsingbo 2001-05-12 12:52:00 返回顶部 类别 兼容性 对应 new 操作符 C++ delete malloc 函数 C/C++ free GlobalAlloc 函数 Win32 Only GlobalFree 注:GlobalAlloc属于底层函数,在Win32下,malloc/new最终都是调用GlobalAlloc实现。 第6楼回复人:ddddh 2001-05-12 15:38:00 返回顶部 windows下最基本的我觉得应该是virtualalloc函数:) 第7楼回复人:ddddh 2001-05-12 15:39:00 返回顶部 而且,GlobalAlloc是16位时代的东西,如今已经过时了。 |