Y'a vraiment un truc que je pige pas là...
Voila le souci : dans un (gros) programme en C, j'ai deux tableaux de structures (différentes entre elles, appelons-les tata et toto, comme on nous l'a bien appris en cours d'algo).
Le problème, c'est que quand je donne une valeur à une des variables d'un élément de mon tableau de structure tata, ça me met à jour avec cette même valeur une des variables d'un élément de mon tableau de structure toto...
Je me demandais si vous aviez déjà vu ça. Ca pourrait venir d'un chevauchement dans la mémoire qui fait que ces deux variables partagent la même adresse ? (J'y pense en l'écrivant, j'ai pas encore maté la valeur des adresses, ça pourrait être un bon début...)
Et le mieux, c'est que ça ne me fait pas la même chose suivant les compilateurs ! Sous windows, je n'ai aucun problème (mais je ne sais plus quel compilateur j'utilise, faudrait que je re-regarde), alors que sous Linux (gcc), ça me le fait.
EDIT : J'y crois pas, c'est bien ça, les deux variables ont la même adresse...
Y'a pas assez de mémoire sur mon ordi pour pas trouver deux segments différents ou quoi !?
Bin me v'la bien dans le caca, va falloir (ab)user du malloc... C'est la première fois que ça m'arrive, c'est courant ?
Autre question tant que j'y suis : quand estimez-vous qu'un malloc se justifie par rapport à juste déclarer la variable directement (avec allocation automatique par l'OS) ? Y'a une rêgle, ou bien chacun fait selon sa sensibilité ? (je précise que tous mes tableaux ont une dimension déterminée directement dans le code, pas à l'éxecution)
Message édité par Turkleton le 26-06-2009 à 02:07:58
---------------
If you think it could look good, then I guess it should