我试图解决在编程 ESP8266 MCU 时遇到的一个问题,我基本上需要将一个对象声明为全局对象,这样就不会导致用户发送 HTTP 请求时其中一个库执行的回调问题,但我还需要等到从 EEPROM 获得一些数据后才能调用构造函数,因此很多人告诉我应该使用placement new,它非常适合我想要做的事情。但仍有一些我不明白的地方:在我调用该对象的构造函数之后,因为它是全局声明的,并且我试图保留它,我不应该通过调用析构函数来删除它,但我应该删除第一个我用来保存对象的指针(我不完全确定我的措辞是否正确)?
class display{
public:
display(int b){
std::cout<<"the value of a: "<<b;
}
};
char *memory= new char[sizeof(display)];
display *obj;
int main(){
int a=69;
obj=new(memory) display(a);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这或多或少是我在 ESP 代码中所做的事情(没有所有其他内容,但就我尝试对新的放置所做的事情而言是相同的)。我的问题是,在有人做了类似的事情之后,如果我删除*内存会导致问题还是没有必要?