problème de pointeur

Bonjour à tous,

J'ai un petit soucis avec le code suivant au niveau de la fonction drawBitmap avec la conversion du pointeur. L'idée étant d'avoir un tableau 2d dans lequel je stocke les pointeurs poitants vers des images et ensuite de les afficher grâce à la fonction drawBitmap mais ça ne compile pas.

Quelqu'un aurait-il une idée ?

Merci

#include <memorysaver.h>
#include <UTFT.h>

#include <avr/pgmspace.h>

UTFT myGLCD(ITDB32S, 38, 39, 40, 41);

// Images definitions
extern unsigned int im1[0x708];
extern unsigned int im2[0x400];
extern unsigned int im3[0x3C0];
extern unsigned int im4[0x2A0];
extern unsigned int im5[0x2A0];
extern unsigned int im6[0x2A0];

int imagesArray[3][2] = {{*im1, *im2}, {*im3, *im4}, {*im5, *im6} };
unsigned int Images;

void setup()
{
  myGLCD.InitLCD();
}

void loop()
{
  for (int i = 0; i <= 2; i++)
  {
    Images = *imagesArray[i, 0];

	myGLCD.drawBitmap(10, 10, 50, 50, Images);
	
  }
}

bonjour,
ca compile pas, c'est bien, mais ca donne quoi comme erreur?

L'idée étant d'avoir un tableau 2d dans lequel je stocke les pointeurs

Donc, si c'est un tableau de pointeurs le type du tableau doit être int*. Ce qui donnerait

int* imagesArray[3][2]

Maintenant tu veux y mettre les pointeurs vers les données. Justement ça tombe bien puisque im1..im6 sont des pointeurs

int* imagesArray[3][2] = {{im1, im2}, {im3, im4}, {im5, im6} };

Pour l'utilisation ensuite. Tu passes par une variable intermédiaire qui doit donc avoir le même type que le tableau donc

unsigned int* Images;

  for (int i = 0; i <= 2; i++)
  {
    Images = imagesArray[i, 0];

 myGLCD.drawBitmap(10, 10, 50, 50, Images);
 
  }

Autre chose, je ne sais pas où tu comptes mettre les images mais cela sort largement de la mémoire de l'ATmega.