【发布时间】:2014-07-01 19:08:26
【问题描述】:
查看链接的问题。
Difference between global operator new and malloc
接受的答案表明,
“替换 malloc 会带来一大堆蠕虫。它可以做到,但不可移植,因为它需要了解链接器。”
为什么替换 malloc 需要知道链接器,为什么替换 ::operator new() 不需要?
【问题讨论】:
-
如果你只有一个指针,你可以转发声明,但如果你有一个对象的实例,则需要一个完整的包含。 stackoverflow.com/questions/553682/…
-
链接答案中的声明说
3. new has the concept of a new_handler, for which there is no malloc equivalent.。恕我直言,这不是 100% 正确的。在underyling c 库中通常声明了几个弱符号,可以用您自己的实现覆盖(参见例如_sbrk)。声明的弱符号不一定涉及链接器知识。
标签: c++ linker malloc new-operator