CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

c++, initialisation tableau 2d

farfadetsan
farfadetsan
Niveau 6
29 mai 2006 à 21:54:10

bonjour,
Je suis en train de programmer un jeu en sdl ( c++ ), et pour ca je doit gérer une matrice en 2d qui est composée de carrés de 4*4 pixels et 50*50 de ces carrés donc 200*200 pixels en tout.

Voila le probleme c´est qu´au début je veux mettre toutes les valeurs de ma matrice a zero, j´ai fait ca :

void InitMatrix()
{int mw=0;
int mh=0;

for(mh=0;mh<51;mh++)
{for(mw=0;mw<51;mw++)
{matrix[mw][mh]=0;
}
}
}

et quand j´éxécute, la surface de mon jeu devien toute noir pendant une seconde puis se ferme.
( quand j´enleve la fonction de mon programme, le reste fonctionne parfaitement ).

SVP aidez moi !

dnob700
dnob700
Niveau 10
29 mai 2006 à 23:35:33

si tu compte de 0 à 50, tu as compté cinquante-et-une case et non pas 50 comme tu as dit que ton tableau en contenait. Lorsque tu essaye décrire dans la dernière, le programme plante (c´est peut-être la cause).

Pour celà, fait tes boucles de 0 à 49, c´est toujours comme celà qu´est numéroter un tableau de 50 cases donc :
for (mh=0;mh<50;mh++)
etc.

farfadetsan
farfadetsan
Niveau 6
30 mai 2006 à 12:57:06

merci ca marche, mais je comprend pas : quand on défini un tableau [50][50], les 50 sont exclu ?? ??

parce que j´ai mi <51 pour qu´il s´arrette a 50 inclu, ce qui reviendrai a dire <=50.

pourquoi des boucles de 0 a 49 ? les 50 sont exclus ?

guyver2
guyver2
Niveau 10
30 mai 2006 à 13:07:48

tu allou un tableau de 50 cases indicées de 0 a 49.
0->49 = 50 éléments.
0->50 = 51 éléments -> dépassement de mémoire -> !! !

farfadetsan
farfadetsan
Niveau 6
30 mai 2006 à 14:04:43

ok merci.

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment