Want to user destructor working in C++

If we do not use destructor in the code, the program still works fine but I need to know why always we need to write destructor when there is a dynamic memory allocation in program. Does memory leakage occur in this case ? If so then what does default constructor do ?
