我对 C++ 中的手动销毁仍然很陌生(来自带有垃圾收集的语言)。我的一门课有以下内容:
Input** Inputs;
初始化如下:
this->Inputs = new Input* [totalInputs];
并且可以根据用户输入在我的代码中重新分配,类似于:
this->Inputs[inputNumber] = new DigitalInput(params...)
这样做的问题是,由于释放旧对象,在该位置重新分配对象时,它容易发生内存泄漏。
重新分配旧对象后删除旧对象的最佳方法是什么?
编辑:我忘了包括这是在 Arduino 代码库上运行的 AVR 微控制器上。
编辑2:我这样做的原因是因为允许用户向将更改输入类型的单元发送命令(即:发送命令和this->Inputs[inputNumber] = new AnalogInput(params...)
。也是指向指针数组的指针的原因是因为该对象的构造函数将根据totalInputs
传入的参数生成该数组。这是在一个共享库中,用于几个不同的单元。