#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void operator delete(void* ptr) { free(ptr); }
void* operator new(size_t sz) {
    void *dst=malloc(sz);
    if (dst) memset(dst,0xFF,sz);
    return dst;
}

struct A { int x; A() {} };
struct B : A { int y; A a; };

int main(int argc,char** argv) {
    A *a=new A();
    B *b=new B();

    printf("a->x=%d\n",a->x);
    printf("b->x=%d\n",b->x);
    printf("b->y=%d\n",b->y);
    printf("b->a.x=%d\n",b->a.x);

    delete b;
    delete a;
    return 0;
}
