diff --git a/grille.c b/grille.c index 3743d72..64f2cf6 100644 --- a/grille.c +++ b/grille.c @@ -13,7 +13,7 @@ typedef enum jeton { typedef struct colonne { int hauteur; - int hauteur_max; + int capacite; jeton* jetons; } colonne; @@ -26,7 +26,7 @@ void print_tab(jeton *tab, int n) void print_colonne(colonne *col) { - print_tab(col->jetons, col->hauteur_max); + print_tab(col->jetons, col->capacite); } void init_zeros(jeton* ptr, int count) @@ -38,13 +38,13 @@ void init_zeros(jeton* ptr, int count) } } -colonne *creer_colonne(int hauteur_max) +colonne *creer_colonne(int capacite) { colonne *col = malloc(sizeof(colonne)); - col->jetons = malloc(hauteur_max*sizeof(jeton)); - init_zeros(col->jetons, hauteur_max); + col->jetons = malloc(capacite*sizeof(jeton)); + init_zeros(col->jetons, capacite); - col->hauteur_max = hauteur_max; + col->capacite = capacite; col->hauteur = 0; return col; @@ -52,24 +52,22 @@ colonne *creer_colonne(int hauteur_max) bool agrandir_colonne(int diff_taille, colonne *col) { - printf("J'appelle realloc.\n"); - jeton* jetons_nouv = realloc(col->jetons, col->hauteur_max + diff_taille); + printf("J'appelle realloc(%p, %d + %d)\n", col->jetons, col->capacite + diff_taille); + jeton *jetons_nouv = realloc(col->jetons, col->capacite + diff_taille); if (jetons_nouv == NULL) return false; // allocation impossible, on garde col->jetons tel quel + col->jetons = jetons_nouv; // on met des zéros dans la partie nouvellement attribuée - init_zeros(jetons_nouv + col->hauteur_max, diff_taille); + init_zeros(col->jetons + col->capacite, diff_taille); printf("vérif travail init_zeros\n"); - print_tab(jetons_nouv, col->hauteur_max + diff_taille); + print_tab(col->jetons, col->capacite + diff_taille); // free est appelé par realloc et les éléments sont copiés par realloc - col->hauteur_max += diff_taille; - col->jetons = jetons_nouv; - - //print_colonne(col); + col->capacite += diff_taille; return true; @@ -78,7 +76,7 @@ bool agrandir_colonne(int diff_taille, colonne *col) bool ajouter_jeton(jeton j, colonne *col) { printf("%d", col->hauteur); - if (col->hauteur >= col->hauteur_max) + if (col->hauteur >= col->capacite) { if (!agrandir_colonne(Y_BLOCK_SIZE, col)) return false;