我遇到了以下代码:
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)];
}
从我得到的结果来看,它被用来拥有一个从“值”开始的类似数组的结构:
double* Val = &(p->a->values) + fColumnNumber;
我的问题是:是否存在内存泄漏?我对重载 new 运算符非常陌生,但我很确定分配的内存没有正确释放。这是否也意味着我永远不能在堆栈上创建一个“a”类?
谢谢