このコードには問題がありますが、コンパイルは問題ありません。しかし、メモリに書き込めませんでしたというエラーが発生した後、すぐにクラッシュします。
デバッガーは、問題が行にあると言います *grid = (grid_t**)malloc(sizeof(grid_t)*GRID_HEIGHT); 、明らかな何かが欠けているに違いありません。
2D 構造体へのポインターを作成しようとしています。
#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);
}