int * duree=new int[piste];
Tu ne peux pas assigner une valeur au niveau de la declaration si cette valeur depend d'une expression qui n'est pas connue au moment de la compilation. Pour que ca marche, il faudrait que "piste" soit une "constante", ie. une expression dont la valeur est connue a la compilation, et non specifiee a l'execution
Il faut que tu cases ton "new int[]" durant l'execution, pour que "piste" soit une expression evaluable.
2 solutions :
- tu as vu les constructeur et/ou methodes (une struct n'etant qu'une class avec droits d'access public par defaut au lieu de private). Tu fais l'assignation dans une constructeur ou methode appele dans le main, et donc sera evalue au runtime
- tu fais l'assignation directement dans ton main (ou fonction pour structurer un peu, e.g. ton Cree(CD) ), la ou "piste" a une valeur connue ; c'est pas "joli" au niveau encapsulation, mais a ce stade on s'en fiche un peu
Message édité le 14 mai 2016 à 15:15:47 par LGV