我有這個代碼的問題,它編譯好。但記憶無法寫入錯誤後,它在亞馬遜上崩潰。調試器說,問題出現在* grid =(grid_t **)malloc(sizeof(grid_t)* GRID_HEIGHT); ,我一定會錯過一些明顯的東西。創建二維結構
我想創建一個指向二維結構的指針。
#define GRID_WIDTH 12
#define GRID_HEIGHT 22
typedef struct
{
int piece;
int edge;
}grid_t;
grid_t*** grid;
*grid = (grid_t**)malloc(sizeof(grid_t)*GRID_HEIGHT);
for(int i = 0 ; i < GRID_HEIGHT ; i++)
{
*grid[i] = (grid_t*)malloc(sizeof(grid_t)*GRID_WIDTH);
}
那麼你提領'grid'(即:'*格= ...'),這是一個未分配指針(無論如何都是上面的代碼)。 – netcoder
不要強制轉換'malloc()'的返回值。 – 2012-12-23 20:42:53
歡迎來到SO。這不是一個代碼審查網站,請問一個具體的技術問題。 –