diff --git a/src/grille.c b/src/grille.c
index de51393520fcda1c3f58850295612aa494031e57..298d2e400892d2d5805369e94047f34ba0d35cf4 100644
--- a/src/grille.c
+++ b/src/grille.c
@@ -1,31 +1,55 @@
 #include "grille.h"
 
-void init_grille_from_file (char * filename, grille* g){
-	FILE * pfile = NULL;
+void init_grille_from_file(char *filename, grille *g)
+{
+	FILE *pfile = NULL;
 	pfile = fopen(filename, "r");
-	assert (pfile != NULL);
-	
-	int i,j,n,l,c,vivantes=0;
-	
-	fscanf(pfile, "%d", & l);
-	fscanf(pfile, "%d", & c);
-	
-	alloue_grille(l,c,g);
-	
-	fscanf(pfile, "%d", & vivantes);
-	for (n=0; n< vivantes; ++n){
-		fscanf(pfile, "%d", & i);
-		fscanf(pfile, "%d", & j);
-		set_vivante(i,j,*g);
+	assert(pfile != NULL);
+
+	int i, j, n, l, c, vivantes = 0;
+
+	fscanf(pfile, "%d", &l);
+	fscanf(pfile, "%d", &c);
+
+	alloue_grille(l, c, g);
+
+	fscanf(pfile, "%d", &vivantes);
+	for (n = 0; n < vivantes; ++n)
+	{
+		fscanf(pfile, "%d", &i);
+		fscanf(pfile, "%d", &j);
+		set_vivante(i, j, *g);
 	}
-	
-	fclose (pfile);
+
+	fclose(pfile);
 	return;
 }
 
-
-void copie_grille (grille gs, grille gd){
+void copie_grille(grille gs, grille gd)
+{
 	int i, j;
-	for (i=0; i<gs.nbl; ++i) for (j=0; j<gs.nbc; ++j) gd.cellules[i][j] = gs.cellules[i][j];
-	return;	
+	for (i = 0; i < gs.nbl; ++i)
+		for (j = 0; j < gs.nbc; ++j)
+			gd.cellules[i][j] = gs.cellules[i][j];
+	return;
 }
+
+void alloue_grille(int l, int c, grille *g)
+{
+	g->cellules = malloc(l * sizeof(int *));
+	for (int i = 0; i < l; i++)
+	{
+		g->cellules[i] = malloc(c * sizeof(int));
+		for (int j = 0; j < c; j++)
+			g->cellules[i][j] = 0;
+	}
+	g->nbl = l;
+	g->nbc = c;
+};
+
+void libere_grille(grille *g)
+{
+	for (int i = 0; i < g->nbl; i++)
+		free(g->cellules[i]);
+	free(g->cellules);
+};