【发布时间】:2016-08-30 10:54:40
【问题描述】:
阅读这个问题:How to know which malloc is used?,malloc 似乎有很多不同的实现。
我试图为 C++ new 运算符找到类似的东西,但无法找到有关 new 的实现方式/位置以及是否存在不同实现的任何信息。他们吗?例如 glibc 使用什么?
【问题讨论】:
-
这有关系吗?今天使用的某些实现可能会在明天改变 - 甚至今天晚些时候。
-
你可以write your own allocator for your C++ objects,这是主要的区别。 C++ 内部有自己的分配方法,不同于
malloc()和相关库。 -
除非您有非常特殊的需要,否则您不需要关心。如果你这样做了,你可以编写自己的分配器。
-
new是 C++ 语言结构(关键字),而不是 C 库或 C++ 库。由编译器供应商来实现它。因此,您需要为此查找您最喜欢的编译器的源代码(如果是 Microsoft,那么就没有运气了)。如果您对内存分配感兴趣,您可能还想看看我的 never_will_be_answered thread 关于内存分配挂钩。 -
@Drop 感谢您的评论。 @Nik Bougalis 是的,这很重要(有时),如果您进行并行编程并在可用空间上分配对象,则必须有一个高效的!跟踪(未)分配空间的机制,我很想知道这个机制在我运行代码的系统上是如何工作的
标签: c++ new-operator