我对c ++几乎没有疑问
如何销毁此代码而不会导致内存泄漏?
void classA::funcA()
{
static char* cArr = new char[10];
}
只是不写这种样式?
您可以改用RAII类型或避免分配:
static char cArr[10];
static auto cArr2 = std::make_unique<char[]>(10);
静态存储中的对象在程序的整个过程中都存在。
如果您在整个期间内不使用该动态对象,则可以在程序终止之前将其删除。但是如果是这种情况,那么为什么要通过静态存储中的指针来拥有对象呢?
在静态指针的生存期结束时,内存在技术上是泄漏的事实,因为程序即将结束,因此这不是问题。
您应该重新考虑的是,是否首先需要静态存储。如果确实将设计更改为使用自动存储,则必须非常小心,不要泄漏内存。