#include <iostream>
using namespace std;

struct A
{
	void * operator new [] (size_t t, int, int)
	{
		cout << "3 parameters allocation" << endl;
		return ::operator new[](t);
	}
	
	void operator delete [] (void *p, int, int)
	{
		cout << "3 parameters deallocation" << endl;
		return ::operator delete[](p);
	}
};

int main() 
{
	A *a = new (5,5) A[10];
	delete [] a;
}