jak mogę przydzielić jeden blok pamięci nowym?

Mam dwuwymiarową tablicę, którą dynamicznie przydzieliłem przy użyciu nowego.

Problem polega na tym, że chcę przydzielić pamięć jako jeden połączony blok zamiast w oddzielnych częściach, aby zwiększyć szybkość przetwarzania.

Czy ktoś wie, czy można to zrobić za pomocą nowego, czy muszę używać malloc?

Oto mój kod:

A = new double*[m];
    for (int i=0;i<m;i++)
    {
        A[i]= new double[n];
    }

Ten kod powoduje błąd segmentacji

phi = new double**[xlength];
phi[0] = new double*[xlength*ylength];
phi[0][0] = new double[xlength*ylength*tlength];
for (int i=0;i<xlength;i++)
{
    for (int j=0;j<ylength;j++)
    {
        phi[i][j] = phi[0][0] + (ylength*i+j)*tlength;
    }
    phi[i] = phi[0] + ylength*i;
}

questionAnswers(3)

yourAnswerToTheQuestion