Fix: memory leak in naval

This commit is contained in:
xamidev
2024-09-10 09:11:08 +02:00
parent d90682c40e
commit e14e5db15a
2 changed files with 16 additions and 1 deletions

View File

@@ -42,6 +42,9 @@ void program_navalbattle()
show_game_stats(grid, enemyGrid);
} while (check_victory(grid, enemyGrid) == 0);
free_grid(grid);
free_grid(enemyGrid);
return;
}
@@ -52,7 +55,6 @@ void init_battlefield(grid_t* grid[SIZE][SIZE])
for (size_t j=0; j<SIZE; j++)
{
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]->y = j;
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])
{
puts("\n*** Ally grid ***\n");