Passage d'un pointeur en argument mais pas de modification !
salut,
tout d'abord, je voudrais remercier tous les membres de ce forum qui m'ont aidé ces derniers jours et m'aideront. Je serais bientôt un membre actif pour aider les autres aussi.
voilà mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| void generation_voisins(int nb_param_DS,
struct parametre_space *design_space,
struct configuration *c,
struct configuration *voisins,
int debut)
{
int compt_gv;
int position;
//string nouvelle_valeur;
for(compt_gv=0;compt_gv<nb_param_DS;compt_gv++)
{
position=position_dune_valeur_de_DS(design_space,*c,compt_gv);
//voisin de droite
//inutile,strcpy(nouvelle_valeur,design_space[compt_gv].valeur[(position+1)%(design_space[compt_gv].nb_valeurs)]);
appliquer_nom_valeur_struct(design_space[compt_gv].nom_param,c,compt_gv,design_space,position);
voisins[debut+2*compt_gv]=*c;//, sizeof (configuration));
//voisin de gauche
appliquer_nom_valeur_struct(design_space[compt_gv].nom_param,c,compt_gv,design_space,position);
voisins[debut+2*compt_gv]= *c;//, sizeof (c));
}
printf("voisins interieur:%d\n",voisins[debut+compt_gv].issue__width);
return voisins;
} |
ce printf("voisins interieur:%d\n",voisins[debut+compt_gv].issue__width); m'a assuré que les modifs ont été appliquées, les voisins sont bien générés
voilà le code dans la fonction principale:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| void recherche_locale(int nb_param_DS,
struct parametre_space *design_space,
int nb_param_constants,
struct parametre_constant *ensemble_parametres_constants,
struct configuration *c)
{
...
for(i=0;i<nbre_pareto;i++)
{
int debut=i*nb_param_DS;
generation_voisins(nb_param_DS,
design_space,
&pareto[i],
voisins,
debut);
}
printf("voisins%d\n",voisins[4].fetch__ifqsize); |
ce printf("voisins%d\n",voisins[4].fetch__ifqsize); me donne qui la portée de mon paramètre voisins a été local, la modif ne sais pas appliquée.
merci