Malloc tableau de chaine de caractere
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 :oops:
Voila le bout de code qui fait des siennes :
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 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);
} |
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
Merci