gpt4 book ai didi

c++将函数中的临时分配链接到自定义分配器?

转载 作者:行者123 更新时间:2023-11-30 02:11:56 26 4
gpt4 key购买 nike

我目前正在使用 C++ 开发一些简单的自定义分配器,这些分配器通常可以正常工作。我还重载了 new/delete 运算符以从我自己的分配器分配内存。无论如何,我遇到了一些我真的不知道内存来自哪里的场景:

    void myFunc(){
myObj testObj();
....do something with it
}

在这种情况下,testObj 仅在函数内部有效,但它的内存从何而来?无论如何我可以将它链接到我的分配器吗?我必须使用 new 和 delete 创建对象还是有其他方法?

谢谢

最佳答案

(myObj testObj(); 声明了一个名为 testObj 的函数,它返回一个 myObj。使用 myObj testObj; 相反。)

内存来自栈。它将在离开作用域时自动自动销毁。


要使用您的newdelete,您当然必须调用newdelete:

myObj* p_testObj = new myObj;
...
delete p_testObj;

但是堆栈上的分配是最有效的,因为它只涉及 1 条指令 sub esp, ??。除非 myObj 很大,否则我看不到使用自定义分配的理由。

关于c++将函数中的临时分配链接到自定义分配器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2575745/

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