不明白为什么有时候用前一种
有时候用后一种

解决方案 »

  1.   

    全局内存对象使用GlobalAlloc函数分配,在Windows 3.X的时代,分配的内存可以有两种,全局的和局部的,例如GlobalAlloc和LocalAlloc。但在Win32的时代这些函数已经被废弃了,现在的内存只有一种就是虚存。现在一般用new
      

  2.   

    HeapAlloc    apply memory from kernel32.dll
    GlobalAlloc  obsolete
    malloc       apply memory form C runtime memory ,and C runtime applys from
                 kernel32.dll
    new          a wrapper of malloc but it is NOT a must for new to implement
                 based on malloc.
      

  3.   

    我所知道的区别只有,在VC下,new是从一个已分配好的大内存块中再分配的,而这个大内存块是用HeapAlloc分配的。这样可以防止多次分配小内存块造成的碎块,并且减少真正内存分配的次数。
      

  4.   

    是这样吗  我怎么听说是  在进行大量的内存操作中  应该使用GlobalAlloc  用new才会造成内存碎片
      

  5.   

    其实也没有什么区别的。在windows下,C++的new就是用这些xxxxAlloc API函数实现的.
      

  6.   

    语言的运行库是通过调用操作系统的API实现的,所以没有本质的区别,但语言的标准运行库是可移植的