Memory Leak in class destructor : I am constructing a Polynomial class in C++. Currently I am reading in input and creating a Polynomial object with a degree and coefficient (double) array.

Ex. 

    6x^3+7.4x^2-3.0x+9
    Polynomial 
    ----------
      degree = 3
      coefficients[0] = 6
      coefficients[1] = 7.4
      coefficients[2] = 3.0
      coefficients[3] = 9

I am getting an error when I am deleting an instance of my class. I am not sure what the problem is exactly...along with a `SEGFAULT` my error looks like:

    Segmentation fault: 11

    0x00007ffff71fdfbd in malloc_printerr (ptr=<optimized out>, 
        str=0x7ffff7304ad8 "free(): invalid next size (fast)", action=<optimized out>) at malloc.c:4983
    _int_free (have_lock=0, p=<optimized out>, av=<optimized out>) at malloc.c:3850
    __GI___libc_free (mem=<optimized out>) at malloc.c:2960

Please help, thanks!

My default constructor looks like:

    /* Constructor for Polynomial */
    Polynomial::Polynomial ()
    {
    	degree = 0;
    	coefficients = new double [1];
    	coefficients[0] = 0;
    }

My destructor looks like:

    /* Destructor for Polynomial */
    Polynomial::~Polynomial ()
    {
    	delete [] coefficients; <--ERROR HERE
    }

My implementation inside my main() looks like this:

    vector<Polynomial> Polys;
    Polynomial *P1 = new Polynomial();
    ...
    P1->degree = degreeInt;
    P1->coefficients[idx] = coefficient;
    Polys.push_back(*P1);
    delete P1; <-- ERROR HERE
    // Pushed Polynomial to Vector, create a new Polynomial object
    P1 = new Polynomial();