操作系統: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