summaryrefslogtreecommitdiff
path: root/src/free_memory.c
blob: 3853e33cdc6b0033e5ab075bc0b21777cc2d8e69 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include "codexion.h"
# include <stdlib.h>   // for atoi(), malloc()

void	free_philos(t_sim *sim)
{
	t_philo	**philos;
	t_philo	*philo;
	int		number_of_philos;

	philos = sim->philos;
	number_of_philos = sim->number_of_philos_actual;
	while (number_of_philos-- > 0)
	{
		philo = *philos++;
		free(philo);
	}
	philos = sim->philos;
	free(philos);
	sim->philos = NULL;
}

void	free_forks(t_sim *sim)
{
	t_fork	**forks;
	t_fork	*fork;
	int			number_of_forks;

	forks = sim->forks;
	number_of_forks = sim->number_of_forks_actual;
	while (number_of_forks-- > 0)
	{
		fork = *forks++;
		free(fork);
	}
	forks = sim->forks;
	free(forks);
	sim->forks = NULL;
}