Bonjour je cherche à faire une copie d'un tableau 2D

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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. :/