donc j’ai un truc bizarre avec un tableau à 2 dimension par exemple quand je fais l’affectation tableau[0,“b”]=5 ça me met 5 dans tableau[0,“b”] logique mais aussi dans tableau[1,“b”] tableau[2,“b”],tableau[3,“b”] etc
en C, tu n’utilise pas l’opérateur virgule pour changer de dimension.
Tu répéte l’opérateur [] :
tableau[1][‘b’] , etc.
tableau[1, “b”] ça ne veut pas dire élément 1, puis élément “b”, ça veut dire : effectue l’opération 1, puis “b” (et encore, l’ordre peut changer, même si on s’attend à du gauche à droite, “b” peut être fait avant 1)
Ce que tu fais là, c’est soit :
tableau[1]
tableau["b"]
Dans le second cas, ça ne risque pas trop de marcher puisque “b” c’est de type const char *, et en général ça a une adresse assez grande, donc converti en entier ça donne quelque chose genre
en fait c’est un probleme de déclaration de mes tableaux.
avant je reservais de la mémoire avec malloc et j’avais pas mal de probleme. la en les déclarant “normalement” ex int tab[3] ça a l’air de mieux marcher…
j’ai aussi pas mal de probleme pour passer un tableau en parametre mais bon…
en tous cas vive le pascal! :super: c’est sans doute moins souple mais c’est loin d etre un mal!
C’est la joie des pointeurs non alloués: tu déclare un pointeur sur int (int*i) mais tu n’alloue pas de mémoire, ton pointeur pointe sur nawak, et par coup de chance, quand tu déclare une autre variable devant (le int c), le nawak est un emplacement mémoire auquel tu as droit.
moralité: soit tu alloue de la mémoire pour i, soit tu le déclare comme int, et tu utilise &i pour utiliser son addresse.