Salut à tous.
Dans mon programme j'ai une erreur étrange, j'explique :
je crée deux tableaux à deux dimensions, un pour une map et l'autre pour garder des sprites que je nomme ressource.
code : int ressource[10][20];
int map[20][26];
J'initialise map pour que toutes ces cases valent 0.
code : ZeroMemory(&map, sizeof (map));
Jusque là aucun problème, je vérifie, toutes ces cases valent 0.
Ensuite je met des valeurs croissantes dans ressource
code : int numeroSprite = 0;
h = chipset->h;
for (i=0;i<h/24;i++)
{
for(j=0;j<10;j++)
{
ressource[j][i] = numeroSprite;
numeroSprite++;
}
}
(h prend la valeur de la hauteur du chipset en pixel et dans la boucle la valeur est divisé par 24 car c'est la hauteur d'un bloc)
C'est là que vient le problème : quand je rempli certaines cases dans ressource, certaine même valeurs vienne dans map.
J'ai chercher un peu et j'ai trouver que certaines cases de map et de ressource on la même adresse d'où le fait qu'elles s'inscrivent dans les deux cas. J'ai vu que quand la première case de ressource était égale à 0, leurs adresses sont directement identiques.
exemple : ressource [0][0] == map [20][0]
ressource [0][2] == map[20][2]
etc...
Ma question est donc, est-il possible de déclarer deux tableau à 2 dimensions sans que aucune cases ont la même adresse ?
Merci 