|
|
做一个有257 X 257个顶点大小的室外地形,需要动态分配二维数组 pVert[257][257],类型为自定义的向量结构体Vector3
而用下面的方法分配的二维数组一运行就出错,改成直接用就没事了。
struct Vector3
{
float x , y , z;
};
class CA
{
Vector3** pVert;
};
在初始化函数Init()中为这个二维数组分配空间
void CA::Init()
{
pVert = new Vector3* [ 257 ];
for( int i=0; i<257; i++ )
pVert = new Vector3[257];
}
//结束,这样分配的不知道为什么,一运行就出错。
而将CA类中的 Vector3** pVert 改为Vector3 pVert[257][257]直接用,只要不用new分配就没不会出错了
class CA
{
Vector3 pVert[257][257];
};
这到底是为什么?????????????????
===================
请大家赐教,我这个二维数组的动态分配错在哪里?是不是因为Vector3是自定义的类型,我用int或者float等系统自带的类型就没有发生过错误。
请高手指教一二!
|
|