gluNurbsSurfaces & dynamically allocated arrays


I’m trying to read in curved surfaces from an .obj file. When when I load the control points into a normal array, created with float ctlarray[4][4][3], it works fine. But when I use the following, the result looks terrible:
typedef float* pnt;
typedef pnt* pnt2;

and then in loops to allocate everthing:
pnt2* temp3 = new pnt*[4];
temp3[q] = new float*[4];
temp3[q][r] = new float[3];

I suspect the problem is something fairly simple that i’m merely overlooking. Any help anybody can give will go along way.