Bonjour
Je travaille sur un projet et je ne heurte a un seg fault qui me resiste.
Je cherche a recopier une map (carre de nb_line sur len_line) mais je n'arrive pas a mallocer un tableau a plus d'une dimension
Voila le bout de code qui fait des siennes :
Voila si vous avez une idee ou que vous voyez une erreur (pas besoin de dire que mon code est moche ca je l'avais vu XD) n'hesitez pas a m'expliquez
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 char **declare(int nb_line, int len_line, char *path) { char **mat; int fd; int x; int y; y = 0; /*Dans cette partie je bloque*/ while (y <= nb_line) { if((mat[y] = malloc((len_line + 1) * sizeof(*mat))) == 0) { my_putstr("Error: Could not malloc\n"); return (0); }; y++; } /*J'ouvre le fichier*/ if ((fd = open(path, O_RDONLY)) <= 0) my_putstr("Error: File can't be open in function nb_line\n"); /*Je passe la premiere ligne car je ne dois pas la recopier et je la traite ailleurs*/ mat[0][0] = 2; while (mat[0][0] != '\n') if (read(fd, &mat[0][0], BUF_SIZE) <= 0) return (0); /*Je recopie ma map*/ y = 0; while (y <= nb_line) { x = 0; while (x <= len_line) { read(fd, &mat[y][x], BUF_SIZE); x++; } y++; } close(fd); return (mat); }
Merci
Partager