Fix: memory leak in naval
This commit is contained in:
@@ -42,6 +42,9 @@ void program_navalbattle()
|
|||||||
show_game_stats(grid, enemyGrid);
|
show_game_stats(grid, enemyGrid);
|
||||||
} while (check_victory(grid, enemyGrid) == 0);
|
} while (check_victory(grid, enemyGrid) == 0);
|
||||||
|
|
||||||
|
free_grid(grid);
|
||||||
|
free_grid(enemyGrid);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -52,7 +55,6 @@ void init_battlefield(grid_t* grid[SIZE][SIZE])
|
|||||||
for (size_t j=0; j<SIZE; j++)
|
for (size_t j=0; j<SIZE; j++)
|
||||||
{
|
{
|
||||||
grid[i][j] = (grid_t*)malloc(sizeof(grid_t));
|
grid[i][j] = (grid_t*)malloc(sizeof(grid_t));
|
||||||
serial_printf(3, "malloc'd x=%d y=%d at 0x%x", i, j, grid[i][j]);
|
|
||||||
grid[i][j]->x = i;
|
grid[i][j]->x = i;
|
||||||
grid[i][j]->y = j;
|
grid[i][j]->y = j;
|
||||||
grid[i][j]->role = 0;
|
grid[i][j]->role = 0;
|
||||||
@@ -61,6 +63,18 @@ void init_battlefield(grid_t* grid[SIZE][SIZE])
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// To avoid memory leaks..
|
||||||
|
void free_grid(grid_t* grid[SIZE][SIZE])
|
||||||
|
{
|
||||||
|
for (size_t i=0; i<SIZE; i++)
|
||||||
|
{
|
||||||
|
for (size_t j=0; j<SIZE; j++)
|
||||||
|
{
|
||||||
|
free(grid[i][j]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void show_ally_battlefield(grid_t* grid[SIZE][SIZE])
|
void show_ally_battlefield(grid_t* grid[SIZE][SIZE])
|
||||||
{
|
{
|
||||||
puts("\n*** Ally grid ***\n");
|
puts("\n*** Ally grid ***\n");
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ typedef struct
|
|||||||
#define BUFFER_SIZE 16
|
#define BUFFER_SIZE 16
|
||||||
|
|
||||||
void init_battlefield(grid_t* grid[SIZE][SIZE]);
|
void init_battlefield(grid_t* grid[SIZE][SIZE]);
|
||||||
|
void free_grid(grid_t* grid[SIZE][SIZE]);
|
||||||
void show_ally_battlefield(grid_t* grid[SIZE][SIZE]);
|
void show_ally_battlefield(grid_t* grid[SIZE][SIZE]);
|
||||||
void placing_ally_ships(grid_t* grid[SIZE][SIZE]);
|
void placing_ally_ships(grid_t* grid[SIZE][SIZE]);
|
||||||
void placing_enemy_ships(grid_t* grid[SIZE][SIZE]);
|
void placing_enemy_ships(grid_t* grid[SIZE][SIZE]);
|
||||||
|
|||||||
Reference in New Issue
Block a user