我遇到了以下代码:
我的问题是:是否存在内存泄漏?我对重载new运算符非常陌生,但我相当确定分配的内存没有正确释放。那是否意味着我永远不能在堆栈中创建“a”类?
谢谢
class a {
public:
void * operator new(size_t l, int nb);
double values;
};
void *a::operator new (size_t l,int n)
{
return new char[l+ (n>1 ? n - 1 : 0)*sizeof(double)];
}
据我所知,它被用来创建一个类似于数组的结构,从"values"开始:
double* Val = &(p->a->values) + fColumnNumber;
我的问题是:是否存在内存泄漏?我对重载new运算符非常陌生,但我相当确定分配的内存没有正确释放。那是否意味着我永远不能在堆栈中创建“a”类?
谢谢
operator delete
,否则我不认为有先验理由怀疑内存泄漏。 - Konrad Rudolphnew
会以某种不同的方式工作呢? - Mr Lister::operator delete
是否能够为这个自定义分配器正确地释放相应数量的内存。 - Konrad Rudolph