c++中我这样delete为什么会报错啊!

void LBM::m_Envolution()
{

    double** u = new double* [Nx]; 
    double** v = new double* [Nx];
    double** dens = new double* [Nx];
    double** u0 = new double* [Nx];
    double** v0 = new double* [Nx];
    double*** f = new double** [Nx];
    double*** f_post = new double** [Nx];

    for (int i = 0; i < Nx; i++)
    {
        u[i] = new double[Ny]; 
        v[i] = new double[Ny];
        dens[i] = new double[Ny];
        u0[i] = new double[Ny]; 
        v0[i] = new double[Ny];
        f[i] = new double* [Ny];
        f_post[i] = new double* [Ny];

        for (int j = 0; j < Ny; j++)
        {
            u[i][j] = this->m_u[i][j];
            v[i][j] = this->m_v[i][j];
            dens[i][j] = this->m_dens[i][j];
            u0[i][j] = this->m_u0[i][j];
            v0[i][j] = this->m_v0[i][j];
            f[i][j] = new double[Q];
            f_post[i][j] = new double[Q];
            for (int k = 0; k < Q; k++)
            {
                f[i][j][k] = this->m_f[i][j][k];
                f_post[i][j][k] = this->m_f_post[i][j][k];
            }
        }
    }


    for (int i = 0; i < Nx; i++)
    {
        delete[]this->m_u[i];
        delete[]this->m_v[i];
        delete[]this->m_dens[i];
        delete[]this->m_u0[i];
        delete[]this->m_v0[i];
        this->m_dens[i] = NULL;
        this->m_u[i] = NULL;
        this->m_v[i] = NULL;
        this->m_u0[i]= NULL;
        this->m_v0[i] = NULL;
    }
    delete[]this->m_u;
    delete[]this->m_v;
    delete[]this->m_dens;
    delete[]this->m_u0;
    delete[]this->m_v0;

    this->m_dens = NULL;
    this->m_u = NULL;
    this->m_v = NULL;
    this->m_u0 = NULL;
    this->m_v0 = NULL;

    for (int i = 0; i < Nx; i++)
    {
        for (int j = 0; j < Ny; j++)
        {
            delete[]this->m_f[i][j];
            delete[]this->m_f_post[i][j];
            this->m_f[i][j] = NULL;
            this->m_f_post[i][j] = NULL;
        }
        delete[]this->m_f[i];
        delete[]this->m_f_post[i];
        this->m_f[i] = NULL;
        this->m_f_post[i] = NULL;
    }
    delete[]this->m_f;
    delete[]this->m_f_post;
    this->m_f = NULL;
    this->m_f_post = NULL;

    this->m_u = u;
    this->m_v = v;
    this->m_dens = dens;
    this->m_u0 = u0;
    this->m_v0 = v0;
    this->m_f = f;
    this->m_f_post = f_post;

    for (int i = 0; i < Nx; i++)
    {
        delete[]u[i];
        delete[]v[i];
        delete[]dens[i];
        delete[]u0[i];
        delete[]v0[i];
        dens[i] = NULL;
        u[i] = NULL;
        v[i] = NULL;
        u0[i] = NULL;
        v0[i] = NULL;
    }
    delete[]m_u;
    delete[]m_v;
    delete[]m_dens;
    delete[]m_u0;
    delete[]m_v0;

    m_dens = NULL;
    m_u = NULL;
    m_v = NULL;
    m_u0 = NULL;
    m_v0 = NULL;

    for (int i = 0; i < Nx; i++)
    {
        for (int j = 0; j < Ny; j++)
        {
            delete[]f[i][j];
            delete[]f_post[i][j];
            f[i][j] = NULL;
            f_post[i][j] = NULL;
        }
        delete[]f[i];
        delete[]f_post[i];
        f[i] = NULL;
        f_post[i] = NULL;
    }
    delete[]f;
    delete[]f_post;
    f = NULL;
    f_post = NULL;

}


img

二级指针和数组指针可不一样