Tableau/procédure

Résolu
nopnop77 Messages postés 18 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 21 avril 2009 - 26 oct. 2007 à 22:59
nopnop77 Messages postés 18 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 21 avril 2009 - 27 oct. 2007 à 01:20
Bonjour !

Voila j'ai un problème à passer un tableau en paramètre entrée/sortie pour une procédure.
Voici un code simplifié:

#include
using namespace std;

void main ()
{
   
    int tab[2];
    void Proc ( int & tab[]);   // problème 1

    tab[0] = 1;
    tab[1] = 2;

    void Proc ( & tab[]);   // problème 2

    cout<<tab[0]<<""<<tab[1];

   

}

void Proc ( int & tab[])   // = problème 1
{

    tab[0]++;
    tab[1]++;
}

Evidemment j'aimerias afficher :    2   3
Pour le problème 1 et 2, dois-je mettre  [] ou [2], ou *, je ne connais pas la synthaxe exacte.

7 réponses

SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
26 oct. 2007 à 23:19
void Proc ( int & tab[]) <- Référence sur tableau
void Proc ( int & tab[]); <- ??? C'est un protoype ?
void Proc ( & tab[]); <- Hein ???

Tu sais ce que tu fais ?

void Proc (int *tab) <- Fonction (déclaration)
{
    ...
}

Proc(tab); <- Appel.

Ouvre un livre de C++ avant d'aller plus loin.

C++ (@++)<!--
3
nopnop77 Messages postés 18 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 21 avril 2009
26 oct. 2007 à 23:36
void Proc ( int & tab[]);     ça c ma déclaration de procédure
Proc ( tab[]);      ça c'est l'appel (effectivement la j'ai oublié pas mettre le "&")

void Proc ( int & tab[])
{
}
ça c'est ma procédure.

Mais je dois mettre :
void Proc ( int & tab[]);
ou void Proc ( int & tab[20]);
ou void Proc ( int & *tab[]);

je ne sais pas la synthaxe quelqu'un d'autre pourrais m'aider parque la Saking tu m'a répondu mais bon....  merci quand même.
0
nopnop77 Messages postés 18 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 21 avril 2009
26 oct. 2007 à 23:40
En fait je crois que ta réponse me satisfait je teste ça mais faut que je mette le "&" sinon il sera pas en entrée/sortie nan?
0
nopnop77 Messages postés 18 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 21 avril 2009
26 oct. 2007 à 23:48
okok j'ai plus de problème sujet clot merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
26 oct. 2007 à 23:57
void func (int & toto)
Ici, & est une référence. C'est pour "simplifier" la programmation (si on peut dire).

Exemple sans référence:
int toto;
func (&toto); // <- On donne l'adresse de toto

Exemple avec référence:
int toto;
func(toto); // <- C'est le compilo qui s'en occupe

&toto, comme montré plus haut, sert à retrouver l'adresse d'une variable.
C++ (@++)<!--
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
27 oct. 2007 à 00:01
Quand je parle d'une fonction sans référence, je parle d'une fonction demandent un pointeur à la place:
void func (int *toto)

C++ (@++)<!--
0
nopnop77 Messages postés 18 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 21 avril 2009
27 oct. 2007 à 01:20
Je ne savais pas que le compilo s'en occupait. Merci bien !
0
Rejoignez-nous