静态结构体数组赋值引起的问题

huruihappy huruihappy 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
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程序就挂掉。

怀疑是结构体数组初始化问题引起的。但是貌似我声明的没有问题啊。调试了半天看不出来结果。请教各位了。

...全文

相关推荐

07. 数组和结构体.docx

- 结构体提供了灵活的数据组合方式,可用于实现复杂的数据结构和算法。通过对数组和结构体的深入了解,我们可以更高效地利用Fortran语言的强大功能解决科学计算中的问题。

晴朗向上

C++动态数组详解

在上述代码中,首先从控制台获取数组大小,并使用new操作符分配了指定大小的整型数组内存空间。需要注意的是,在使用动态数组时,一定要小心内存泄漏的问题。如果没有及时释放已经分配的内存空间,会导致程序在运行过程中占用大量的内存,严重影响程序的性能和稳定性。C++中的动态数组是一种非常方便的数据结构,可以在程序运行时根据需要动态地分配内存空间。与静态数组相比,动态数组的大小可变性更强,可以适应不同的存储需求。在C++中,动态数组需要使用new操作符进行内存的分配,然后使用delete操作符释放已分配的内存。

2301_79366332

c++从函数返回数组的方法代码

在本例中,使用`static`关键字避免了这个问题,因为静态局部变量在其作用域内只会被初始化一次,即使函数调用结束,它仍然存在。

weixin_38558870

专升本C语言试题

通过模拟考试的形式,学生可以熟悉考试题型、加深对C语言的理解,并提升解决问题的能力。#### 单项选择题知识点解析1.

feiyang0718

C语言程序设计教程修订本 结构体与联合体PPT学习教案.pptx

**8.1.4 结构体类型变量的初始化**结构体变量可以被初始化,但通常只针对全局或静态局部变量。

woshifafuge
评论 6
收藏 已收藏
分享
返回顶部
huruihappy
C++ 语言 65,214 成员 250,514 内容