当CRT动态链接时,重载的全局运算符new(和变量)如何工作

时间:2017-04-18 12:44:07

标签: c++

void *operator new(size_t s) { ... }

int main()
{
    char *b = new char[256];     // (1) Calls our new
    std::vector<int> v;
    v.resize(128);               // (2) Also calls our new..
    return 0;
}
  • (1)编译此代码时,编译器使用我们重载的新代码。行。
  • (2)编译此代码时,编译器将resize()的实现留给CRT - 在运行时链接。

如何在运行时链接的CRT实现resize()链接回此模块的operator new实现

编辑:要明确,我并没有要求如何这样做 - 我说明观察到的行为,并询问如何运作 < / p>

1 个答案:

答案 0 :(得分:0)

这将是一项艰苦的工作,根本不可行。您必须手动修补DLL。

我不敢告诉你,这是不可能的,至少不安全。