UN TABLEAU MULTIDIMENTIONNEL COMME PARAMETRE DE FONCTION EN C++

Messages postés
968
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
- - Dernière réponse : cs_juju12
Messages postés
968
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
- 5 août 2008 à 15:39
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/47500-un-tableau-multidimentionnel-comme-parametre-de-fonction-en-c

Afficher la suite 
cs_juju12
Messages postés
968
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4 -
"Attention, les tableaux, et ce quelque soit la méthode d'appel, sont toujours transmis par référence (adresse mémoire) donc directement accessible et modifiable par la fonction..."

dans le cas de tes exemples oui, mais si on veut empêcher toute modification :
void jenepresumederien(const string* m, int x, int y){...}

Peut-être éviter d'utiliser le terme 'référence' dans ce cas, risque de confusion avec les références du C++. D'accord au final ça revient au même mais dans le cadre des références on manipule (du point de vue utilisateur) l'objet et pas un pointeur.
cs_Mcjo
Messages postés
403
Date d'inscription
dimanche 12 août 2001
Statut
Membre
Dernière intervention
3 septembre 2012
2 -
En effet, cette affirmation est très juste, mais il faudra aussi ajouter que le fait de rajouter 'const' empêche l'affectation de nouvelle valeur à mon tableau, il est accéssible en lecture uniquement...
Ici il faut surtout que les débutants fassent la distinction entre la porté des variables :
- le fait de modifier la valeur d'un paramètre d'une fonction sans que cela ne change sa valeur pour la suite de l'exécution du programme (portée locale).
- le fait transmettre un pointeur de constant (! différent des pointeurs constants ), interdisant ainsi la modification de la variable....
cs_Mcjo
Messages postés
403
Date d'inscription
dimanche 12 août 2001
Statut
Membre
Dernière intervention
3 septembre 2012
2 -
désolé :
pointeur de constante, une petite faute de frappe :)
cs_juju12
Messages postés
968
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4 -
"si on veut empêcher tout modification" == "accessible en lecture uniquement"
non?

attention à la signification de 'portée' : il s'agit du domaine où l'on peut utiliser une variable, qu'elle soit ou non modifiable n'y change rien.

Sur ce, bonne continuation.