Je viens de voir l'erreur.
Tu as écris :
Code :
- verif = fread ( &buffer , sizeof (buffer), 1, fp);
|
Ce qui signifie que tu modifies ici le pointeur buffer et non pas la zone mémoire qu'il pointe. Et évidemment, après buffer va pointer sur n'importe quoi, et le premier accès à la zone nouvellement pointée fera SEGV...
A mon avis, tu dois écrire:
Code :
- verif = fread ( buffer , buffer_length, 1, fp);
|
avec un buffer_length initialisé comme suit avant :
Code :
- int buffer_length = width * height * ( bpp/8);
- buffer = (char *) malloc (buffer_length * sizeof(char));
|