Re[7]: Глюк с (unsigned short* a = new unsigned short[2];)
От: denis-b  
Дата: 12.11.03 14:36
Оценка:
Проверьте второй сдвоенный цикл, что стоит перед злополучным выделением памяти.
Я досконально не просматривал, но по-моему там index вылетает за пределы vertMap.
Ведь в vertMap 8 флоатов, а index похоже где-то до 32 дойдет.
Вполне возможно, что это и на выделение памяти как-то влияет.

Здравствуйте, Amon-RA, Вы писали:

AR>
AR>              int vertCount = 4;
AR>          float* vertCoo = new float[vertCount*3];
AR>          float* vertNorm = new float[vertCount*3];
AR>          MyVector center(0,0,5);
AR>          for(int ct = 0, index = 0; ct < vertCount; ct++, index += 3) 
AR>          {
AR>            MyVector pos(ct,ct,index);
AR>            pos.subtract(center);
AR>            vertCoo[index  ] = (float)pos.getX();
AR>            vertNorm[index  ] = 0.0;
AR>            vertCoo[index+1] = (float)pos.getY();
AR>            vertNorm[index+1] = 0.0;
AR>            vertCoo[index+2] = (float)pos.getZ();
AR>            vertNorm[index+2] = 1.0;
AR>          }
AR>          float* vertMap = new float[vertCount*2];
AR>          int  uCount = 4;
AR>          int  vCount = 4;
AR>          float vStep = 1.0f/(vCount-1);
AR>          float uStep = 1.0f/(uCount-1);
AR>          int v;
AR>          for( v = 0, index = 0; v < vCount; v++) 
AR>          {
AR>            float vConst = v*vStep;
AR>            for(int u = 0; u < uCount; u++, index += 2) 
AR>            {
AR>              vertMap[index  ] = u*uStep;
AR>              vertMap[index+1] = vConst;
AR>            }
AR>          }
AR>/*******************************************/
AR>          unsigned short* trInd = new unsigned short[2];
AR>          trInd[0] = (unsigned short)uCount;
AR>          trInd[1] = (unsigned short)vCount;
AR>/********************************************/
AR>          CShape*  shp;
AR>          shp = new CShape(
AR>            vertCount,vertCoo,vertNorm,vertMap,0,trInd,true,true
AR>          );
AR>          msh = new CMesh(shp);
AR>          getWorld().addObject(msh);;
AR>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.