bonjour,
je suis bloqué dans ma tentative d' allouer conditionnellement de la mémoire pour un tableau.....
Au départ: un objet , avec dans ses données, un pointeur de type 'bidule' (entier, ou structure déjà déclarée, ici appelée step_mark)
La structure déclarée a comme éléments (entre autres)
Dans l'en-tête de l'objetCode:step_mark {Objet * this_analogue; int length; .../....;}..
Dans une fonction de l' objet, une condition if() contientCode:protected: ..../..... step_mark * bidule; ...../.....
Le code compile bien, et en débogage, une fois le code exécuté, quand j'inspecte les valeurs de A,i,C ... le débogueur indique les valeurs attendues.Code:if(truc) { step_marks=new step_mark[MAX_MARKS]; bidule =new step_mark[MAX_MARKS]; bidule[0].length=330; bidule[1].this_analogue=this; bidule[1].length=1; bidule[2].this_analogue=this; bidule[2].length=2; bidule[2].this_analogue=this; bidule[3].length=3; bidule[3].this_analogue=this; A=bidule[0].length; // ==330 ? oui i= bidule[2].length; // ==2 ? oui !! C=bidule[1].length; //==1 ? oui !!! }; .
MAIS
..... dans d'autres méandres du code que j'ai écrit, il me semble que des valeurs de la structure ne sont plus les valeurs initialisées (ou modifiées de façon volontaire): d'où erreurs inadmissibles.
..... le débogueur est incapable d'accéder au tableau: il fait comme si *bidule pointait sur une structure simple, alors que ça devrait être un tableau (statique ?) de dimension MAX_MARKS == 300 !
Alors ma question:Code:...diverses variables de l'Objet..... bidule @0x7fffd800d2d0 step_mark after 0x0 nodes * [[[normal: je n'ai pas initialisé ça ! ]]] before 0x0 nodes * [[[normal: je n'ai pas initialisé ça ! ]]] initial_tick 0 long length 330 int previous_step_trigger 0x0 nodes * [[[normal: je n'ai pas initialisé ça ! ]]] this_analogue 0x0 nodes * [[[: je n'ai pas initialisé ça à la ligne 0 du tableau: normal pour bidule[0] ]]] trip 0 int [[[normal: je n'ai pas initialisé ça ! ]]] ... autres variables de l'objet: dimension_suivants 1 int etc..... .
Les déclarations initiales sont-elles erronées,ou bien est-ce simplement le débogueur qui n'est pas conçu pour faire les conversion?
Et dans ce cas, dois-je chercher ailleurs que dans cette portion de code la cause du bug?
Merci d'avance
-----