[C++] Probleme de pointeur ou reference!!

chreks -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
merci de bien vouloir m'aidez
j'ai un problème ke je narrive pa a comprendre en C++,puisque je suis un débutant.

explication :

j'ai une fonction de cette forme :
int CoutFixe(indexed_sparse_matrix_t<int> & matrix,int  prof,unsigned i,int f,int *tau,int * tau2)


avec deux pointeurs sur tableau en argument.
le tableau tau2 est initialisé a 0 dans le main.
en fait les valeurs du tableau tau2 son modifiés dans cette fonction et j'aimerais les garder pour pas avoir a les refaire et donc de gagner du temps.

 int s;
   s=matrix.get(i,3*(prof-1)+tau[prof-1]%10)+tau2[prof-2];
  tau2[prof-2]=s;
   return s;


sauf que lorsque je sors de cette fonction la valeur de tau2 que j'ai stoké juste avan revien a 0!!!
et je n'arrive pas à comprendre, surtout que je comprend pas bien les truc de pointeurs réferences et touc ca!

merci de bien vouloir maider SVP
Configuration: Windows XP
Firefox 2.0.0.4

1 réponse

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    En C/C++ les valeurs passées en paramètres sont des recopies. Quand tu veux modifier un paramètre il faut
    - soit utiliser une référénce (qui informatiquement parlant se comporte comme un pointeur initialisé)
    - soit utiliser un pointeur : on recopie une adresse mais pas ce qui s'y trouve

    Ainsi
    void inc1(int i){++i;} // !ok (i n'est incrémenté que dans cette fonction)
    void inc2(int & i){++i;} //ok
    void inc3(int * i){++(*i);} //ok
    

    Dans ton cas les valeurs pointées par tau2 donc normalement ça devrait être bon. Peux tu nous donner un extrait de code minimum (et compilable) mettant en évidence le problème ?

    Bonne chance
    0