I'm writing the minesweeper game in C. I want be able to play games with different minefields with different sizes and number of mines I've created such structures to describe my data:
typedef struct t_Place Place;
struct t_Place{
    unsigned numberOfMinesNear;
    int mine;
    int state;
};
typedef struct t_Minefield Minefield;
struct t_Minefield{
    int xSize;
    int ySize;
    unsigned minesNumber;
    Place **places; 
};
So, now I'm trying to initialize my minefield. I do the following:
void makeGame(Minefield *minefield, unsigned x, unsigned y, unsigned mines){
    int i, j;  
minefield->places = malloc(x * y * sizeof(Place));       
    for(i = 0; i < x; i++)
        for(j = 0; j < y; j++){
            minefield->places[i][j].mine = EMPTY;
            minefield->places[i][j].state = HIDDEN;
            minefield->places[i][j].numberOfMinesNear = 0;
        }
minefield->xSize = x;
    minefield->ySize = y;
    unsigned minesToPlace = mines;
    srand(time(NULL));
    while(minesToPlace > 0){
        i = rand() % x;
        j = rand() % y;
        if(minefield->places[i][j].mine)
            continue;
        minefield->places[i][j].mine = MINE;
        minesToPlace--;      
    }  
    minefield->minesNumber = mines;
    // here will be call of play(minefield) function to start the game
}
int main(){
    Minefield *gameField = (Minefield *) malloc(sizeof(Minefield));
    makeGame(gameField, DEFAULT_X, DEFAULT_Y, DEFAULT_MINES);
    // DEFAULT_X = DEFAULT_Y = DEFAULT_MINES =  10
    free(gameField);
    return 0;
}
I'm getting segfault at first line of code in makeGame function. What i'm doing wrong? I want allocate memory for my minefield dynamically, not statically.
 
     
    