Partage
  • Partager sur Facebook
  • Partager sur Twitter

Tableau 2 dimensions à l'aide de pointeurs

Problème d'affichage

    13 septembre 2018 à 13:31:42

    Bonjour,

    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;
    }



    • Partager sur Facebook
    • Partager sur Twitter
      13 septembre 2018 à 14:27:10

      Hello,

      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

      • Partager sur Facebook
      • Partager sur Twitter

      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.
      • Editeur
      • Markdown