Donnée modifiée après l'initialisation d'un tableau alloué
Bonjour je cherche à faire une copie d'un tableau 2D
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| char **init_sudok(char **sudoku)
{
char **sudoku_init;
int i;
int j;
sudoku_init = malloc(9);
i = -1;
while (sudoku_init && ++i < 9)
{
j = -1;
sudoku_init[i] = malloc(9 + 1);
while (sudoku_init[i] && ++j < 10)
sudoku_init[i][j] = sudoku[i][j];
ft_putstr(1, "Tour ");
putnbr(1, (i + 1));
ft_putstr(1, "\n");
ft_putstr(1, sudoku_init[0]);
if (i > 0)
ft_putstr(1, sudoku_init[1]);
ft_putstr(1, "\n");
}
return (sudoku_init);
} |
L'initialisation se déroule correctement, au début, mais au fur et à mesure les données des deux premières lignes changent. Pour voir l'évolution des ces lignes je les affiches à chaque tour de la grande boucle, voici ce que ça donne :
Tour 1
1...32..7
Tour 2
1...32..7
..56...4.
Tour 3
1...32..7
..56...4.
Tour 4
1...32..7
..56...4.
Tour 5
▒32..7
..56...4.
Tour 6
▒@▒7
..56...4.
Tour 7
▒@▒`▒..56...4.
Tour 8
▒@▒`▒▒▒1..56...4.
Tour 9
▒@▒`▒▒▒▒▒..56...4.
Je ne vois pas d'où sortes ces caractères et comment y remédier. :/