静态结构体数组赋值引起的问题
Map.h
struct tagOneBigMap{
int bigMapTypeID ; //大地图类型
int bigMapLogicStartX ; //大地图起始位置
int bigMapLogicStartY ;
int bigMapWidth ;
int OneLongMapID ; //单一长地图ID
};
typedef struct tagOneBigMap OneBigMap;
class Maps {
public:
static int nowMaps[7]; //当前生成的地图组合
static const int ONE_BIG_MAPS_LENGTH = 7;
static OneBigMap oneBigMaps[7] ;
/*****************************
构造函数
*****************************/
Maps(){
}
/*****************************
解造函数
*****************************/
~Maps(){
}
/*****************************
初始化底图数据
*****************************/
void initMapData(){
for(int i = 0; i < ONE_BIG_MAPS_LENGTH; i++){
Maps::oneBigMaps[i].bigMapTypeID = nowMaps[i];
}
}
};
//========================================================
Map.cpp
OneBigMap Maps::oneBigMaps[7] = {
{1,0,0,0,0},
{2,0,0,0,0},
{3,0,0,0,0},
{4,0,0,0,0},
{5,0,0,0,0},
{6,0,0,0,0},
{7,0,0,0,0}
} ;
int Maps::nowMaps[7] = {0,1,2,3,4,5,6};
在另外1个文件里面
Maps* maps = new Maps();
maps->initMapData();
编译通过,运行时候程序崩溃。
如果注释掉 maps->initMapData(); 程序正常运行。
断点看了赋值数据,都是正常的。
若ONE_BIG_MAPS_LENGTH = 1时候,程序不会挂。若ONE_BIG_MAPS_LENGTH>1程序就挂掉。
怀疑是结构体数组初始化问题引起的。但是貌似我声明的没有问题啊。调试了半天看不出来结果。请教各位了。