有没有办法在替换的全局运算符new中写入文件?
// simple operator new replacment
void* operator new(std::size_t bytes) {
std::ofstream log{"log.txt"};
log << bytes << " bytes allocated\n";
return std::malloc(bytes);
}
std :: ofstream使用new,创建一个无限循环。
答案 0 :(得分:0)
你可以重载运算符但是对于特定的参数,我的意思不是全局的, 这是一个名为student的类的示例:
void * operator new(size_t size)
{
cout<< "Overloading new operator with size: " << size << endl;
void * p = ::new student();
//void * p = malloc(size); will also work fine
return p;
}
您可以找到更多详情Here