我一直想知道重新定义new
有什么用。我的意思是当开发人员使用:
#pragma push(macro,new)
#undef new
这有什么用?我认为 new 运算符是所有编译器的标准? 重新定义 new 是否为开发人员提供了一种方法来更改 new 为对象分配空间的方式?
最佳答案
您可能认为它可以记录 C++ 程序中发生的任何分配。所以你需要定义你自己的新操作来记录这个分配。您还需要重新定义删除以记录所有在 C++ 中进行的未分配。
一些工具重新定义它并为内存块的开始和结束分配更多内存,并在头部和尾部输出某些签名,以找出代码中的任何缓冲区溢出问题。您可以检查这样做的 MS 应用程序验证程序。
关于c++ - 重新定义 "new"运算符的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12207885/