次のコードに遭遇しました:
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」クラスを作成できないということですか?
ありがとう