Bonsoir,
J'en perds mon latin.
Il y a sens doute une explication, mais je ne trouve pas.
En ayant
current_cross = (set -> cross_set) + i_cros ;
et
cur_line = (current_cross -> lines) + i_line ;
cur_cross et cur_line sont bien declares comme pointeurs (differents) sur les bonnes structures
la valeur de cur_line devient fausse ou moins pour i_line = 1
J'ai fait le test avec ces 3 lignes de code successive
dans la boucle qui incremente i_line
if ((((set -> cross_set) + i_cros) -> lines + i_line) != ((current_cross -> lines) + i_line)) printf ("Issue 1 %d\n", i_line) ;
if (((set -> cross_set) + i_cros) -> lines != current_cross -> lines) printf ("Issue 2 %d\n", i_line) ;
if (((set -> cross_set) + i_cros) -> lines + i_line != current_cross -> lines + i_line) printf ("Issue 3 %d\n", i_line) ;
Le test 2 est toujours correct
Mais les tests 1 et 3 sont systematiquement en erreur pour i_line = 1 (en fait ceux sont les meme tests).
Pourquoi le sommation avec i_line est-elle fausse ?
En fait
(set -> cross_set) + i_cros) -> lines + i_line
semble bien correct, mais pas
current_cross -> lines + i_line
Est-ce que je dois caster ?
===========================================================================
Patrick DUPRÉ | | email: pdupre@???
Laboratoire interdisciplinaire Carnot de Bourgogne
9 Avenue Alain Savary, BP 47870, 21078 DIJON Cedex FRANCE
Tel: +33 (0)380395988
===========================================================================