IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Array passage par référence


Sujet :

C++

  1. #1
    Membre actif Avatar de stracoma
    Homme Profil pro
    Médecin
    Inscrit en
    Août 2013
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Maroc

    Informations professionnelles :
    Activité : Médecin

    Informations forums :
    Inscription : Août 2013
    Messages : 413
    Points : 229
    Points
    229
    Par défaut Array passage par référence
    Bonjour à tous. J'ai besoin de votre aide car vrai débutant. ma question est en comentaire dans le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    #include <iostream>
    #include <array>
    using namespace std;
     
    void mafct(array<int,5> tablo,int i);
    int main()
    {
        array<int,5> TABLO={1,2,3,4,5};
        mafct(TABLO,10);
        cout<<"=== Après passage par référence"<<endl;
        for(auto elem:TABLO)
        {
            cout<<elem<<endl;/* Ici je m'attend à
            ce que TABLO={11,12,13,14,15} puisque je fais
            un passage par référence*/
        }
        return 0;
    }
     
    void mafct(array<int,5> Tab,int i)
    {
        for(auto elem:Tab)
        {
            elem +=i;
            cout<<elem<<endl;
        }
    }
    Je n'arrive pas à localiser mon erreur
    J'apprends la programmation pour le plaisir

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Citation Envoyé par stracoma Voir le message
    puisque je fais un passage par référence
    Doublement non

    • De 1, tu passes ton tableau en paramètre par valeur et non par référence. Tu manipules donc une copie de ton tableau dans la fonction.
      Un passage par référence se fait avec le symbole & :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      void mafct(array<int,5> & Tab, int i)
    • De 2, auto elem se déduit en int elem, qui copie aussi chaque élément de ton tableau (auto ne garde ni la référence, ni la constance). Il faut aussi rajouter un & à ce niveau :

    Si ce n'est déjà fait, je te conseille la lecture de la FAQ les références.

  3. #3
    Membre actif Avatar de stracoma
    Homme Profil pro
    Médecin
    Inscrit en
    Août 2013
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Maroc

    Informations professionnelles :
    Activité : Médecin

    Informations forums :
    Inscription : Août 2013
    Messages : 413
    Points : 229
    Points
    229
    Par défaut
    Ok merci. Maintenant c'est bon
    J'apprends la programmation pour le plaisir

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Passage par référence
    Par e1lauren dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 01/09/2006, 12h59
  2. Passage par copie vs passage par référence
    Par bolhrak dans le forum C++
    Réponses: 11
    Dernier message: 20/08/2006, 23h37
  3. Réponses: 4
    Dernier message: 26/12/2005, 17h01
  4. Passage par référence
    Par difficiledetrouver1pseudo dans le forum Langage
    Réponses: 9
    Dernier message: 28/09/2005, 11h17
  5. Problème très rapide de passage par référence
    Par Noxexplorer dans le forum ASP
    Réponses: 2
    Dernier message: 23/06/2005, 10h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo