problème d'allocation mémoire
voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| void flip(image* img) {
int i, j;
char *tmp = NULL;
for(i=0; i<(img->h/2); i++) {
tmp = (char*) malloc(sizeof(img->w*3));
for(j=0; j<img->w*3; j++) { // je récupére une ligne vers le debut.
printf("i1:j%d, ",j);
tmp[j] = img->data[(i*img->w*3)+j];
}
for(j=0; j<img->w*3; j++) { // je récupère une ligne vers la fin que je met a la place de la première.
printf("i2:j%d, ",j);
img->data[(i*img->w*3)+j] = img->data[((img->h-i)*img->w*3)+j];
}
for(j=0; j<img->w*3; j++) { // la ligne que j'ai récupérer au debut je l'insert a la fin.
printf("i3:j%d, ",j);
img->data[((img->h-(i+1))*img->w*3)+j] = tmp[j];
}
printf("\nok\n");
free(tmp);
printf("\nok\n");
}
} |
Une erreur survient quand on arrive au "free(tmp)";
le premier ok s'affiche mais pas le deuxième, j'ai passé une heure a chercher l'erreur mais la j'en peux plus, je fait donc appelle à vous :)
sa doit juste être une petite erreur de rien du tout.