Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Messages recommandés

Posté(e)

Salut,

 

Je dois passer un tableau en paramètre dans une fonction, mais c'est la fonction qui calcule le nombre d'éléments qu'aura le tableau, et qui remplit le tableau. Comment qu'on fait ?

 

J'avais pensé à :

 

(main)
int nb;
int *tab;
rempli(nb, tab);

int rempli(int &nb, int *tab)
{
 nb = 2;
 tab = new int[nb];
 tab[0] = 3;
}

 

Mais ça marche pô... :P

 

Merci.

Posté(e)

Salut,

 

Ce n'est pas que ton code ne fonctionne pas, c juste que tu ne lui passe pas exactement ce qu'il lui faut.

Ton tableau est bien créer dans ta procédure "rempli" mais n'est valable qu'a l'intérieur de celle-ci.

 

J'avourai que les passages de tableaux en paramétre m'a toujours profondément ennuyé et que je n'est jamais aimé (mais ils me le rende bien :P ).

 

Perso, je n'utilise presque qu'exclusivement des listes simplement (ou doublement) chainées. C vrai, c pas forcément aussi rapide pour récupérer des données mais je trouve ça bcp plus rigolo (et pis la gymnastique est plus rigolote).

 

Mais ne décourage pas, il y a de trés bon programmeurs parmis les Zébuloniens..

 

@+

Posté(e)

:-P

 

Je s'av que je retrouverai.

 

Ce qu'il faut, c donc que tu passe à ta procédure l'adresse de ta variable (&) et que dans la déclaration de ta procédure tu passe un double pointeur de référencement ( ** ).

 

Bref, je ne v pas m'étaler (g mal dormi du coup hier :-( j'aime pas qu'un truc me résiste :P )

 

Donc, il faut un truc du genre :

 

main()

{

int nb;

int* tab;

int toto;

int titi;

 

toto = rempli(nb, &tab);

titi = tab[0];

 

//Et là, titi = toto, c cool.

}

 

int rempli(int &nb, int **t)

{

*t = new int[5];

*t[0] = 3;

return *t[0];

}

 

 

@+

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...