操作系统:Windows 7,编译器:GCC 3.2.3(MinGW的)C程序崩溃分配化合物结构
我已创建这三个数据结构在C:
#define MAP_NAME_LEN 30
#define MAP_W 25
#define MAP_H 19
#define WORLD_W 32
#define WORLD_H 32
typedef unsigned char byte;
typedef struct Tile
{
byte type;
byte character;
byte fgColor;
byte bgColor;
};
typedef struct Map
{
char name[MAP_NAME_LEN];
Tile overlay[MAP_H][MAP_W];
Tile underlay[MAP_H][MAP_W];
};
typedef struct World
{
Map area[WORLD_H][WORLD_W];
};
当我尝试创建瓷砖和/或地图的个别实例,没关系,完全没有问题,一切正常。不过,如果我尝试创建一个世界,像...
int main()
{
World world;
}
...程序简单地崩溃(Windows 7中说,该程序崩溃或正在寻找一个解决方案,等等)。你们有什么想法为什么会这样?
谢谢!
请发布MAP_NAME_LEN,MAP_H和MAP_W,WORLD_H和WORLD_W的值。可能堆栈溢出。 – hmjd 2011-12-31 21:02:58
你使用的typedef没有声明defintion。你应该这样写:typedef struct _Map {...} Map;如果你喜欢,你也可以省略_Map,创建匿名结构。 – stdcall 2011-12-31 21:03:42
什么是MAP_W/H WORLD_W/H定义为?也许你在堆栈上放太多? – 2011-12-31 21:03:31