gpt4 book ai didi

c++ - 重新定义 "new"运算符的目的是什么?

转载 作者:太空狗 更新时间:2023-10-29 21:04:06 26 4
gpt4 key购买 nike

我一直想知道重新定义new有什么用。我的意思是当开发人员使用:

#pragma push(macro,new)
#undef new

这有什么用?我认为 new 运算符是所有编译器的标准?重新定义 new 是否为开发人员提供了一种方法来更改 new 为对象分配空间的方式?

最佳答案

您可能认为它可以记录 C++ 程序中发生的任何分配。所以你需要定义你自己的新操作来记录这个分配。您还需要重新定义删除以记录所有在 C++ 中进行的未分配。

一些工具重新定义它并为内存块的开始和结束分配更多内存,并在头部和尾部输出某些签名,以找出代码中的任何缓冲区溢出问题。您可以检查这样做的 MS 应用程序验证程序。

关于c++ - 重新定义 "new"运算符的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12207885/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com