Listing 3: Delete trouble

#include <new>
#include <stdlib.h>

class base
    {
    };

class derived : public base
    {
public:
    virtual ~derived()
        {
        }
    };

int main()
    {
    derived d;
    derived *p = new derived(d);
    delete p;
    return 0;
    }
— End of Listing —