Je souhaite afficher un tableau à 2 dimensions déclaré à l'aide de pointeurs. J'obtiens une erreur de segmentation, pouvez vous m'aider à en comprendre la cause ?
Merci d'avance.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#define L 6
#define C 5
typedef enum {WHITE, BLACK} pixel;
void affiche(pixel *image[C]){
for (int i = 0; i < L; i++){
for (int j = 0; j < C; j++)
printf("%d ",image[i][j]);
printf("\n");
}
printf("\n");
}
int main(int argc, char * argv[]){
pixel ** image = (pixel **) malloc(L*sizeof(pixel));
for (int i = 0; i < L; i++)
image[i] = (pixel *) malloc(C*sizeof(pixel));
for (int i = 0; i < L; i++)
for (int j = 0; j < C; j++)
image[i][j] = WHITE;
affiche(image);
for (int i = 0; i < L; i++)
free(image[i]);
free(image);
return 0;
}
Je ne sais pas ce qu'est pixel (type int je suppose), mais en tout cas, ligne 23, c'est sizeof(*pixel), et ligne 25 sizeof(**pixel)
Et les cast ne sont pas nécessaire en C, ni recommandés d'ailleurs.
- Edité par edgarjacobs 13 septembre 2018 à 14:29:07
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
Tableau 2 dimensions à l'aide de pointeurs
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent