voici mon code :
Une erreur survient quand on arrive au "free(tmp)";
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 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"); } }
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.
Partager