我引用MSDN上的话:http://msdn.microsoft.com/en-us/library/aa366533(VS.85).aspx:
malloc函数的缺点是它依赖于运行时。new操作符的缺点是它依赖于编译器和语言。
现在有几个问题:
a) 我们说malloc依赖于运行时,这是什么意思?有哪些动态内存分配函数可以独立于运行时?这个说法听起来真奇怪。
b) new操作符是依赖于语言的吗?当然应该是的,对吗?HeapAlloc、LocalAlloc等是不是独立于语言的?
c) 纯性能方面,MSVC提供的例程更可取吗?
阿尔潘
malloc函数的缺点是它依赖于运行时。new操作符的缺点是它依赖于编译器和语言。
现在有几个问题:
a) 我们说malloc依赖于运行时,这是什么意思?有哪些动态内存分配函数可以独立于运行时?这个说法听起来真奇怪。
b) new操作符是依赖于语言的吗?当然应该是的,对吗?HeapAlloc、LocalAlloc等是不是独立于语言的?
c) 纯性能方面,MSVC提供的例程更可取吗?
阿尔潘
new
的行为不依赖于编译器;它如何实现其目的当然是编译器相关的(但这也是一个不重要的细节),而且也与系统有关(就像malloc一样)。 - ShinTakezou