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 :

retour de pointeur par une fonction


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2007
    Messages : 257
    Par défaut retour de pointeur par une fonction
    Bonjour,
    J'etudies en ce moment le c++ et dans un des exercices ke je dois rendre, une fonction a pour role de copier certaines valeur de deux tableaux distincts dans un tableau de plus grande taille.Dans l'énoncé on indique que le prototype de la fonction doit etre " dans u j'ai un prototype de fonction qui m'est fourni " int * vecCat(int * vec1,int * vec2); " et je ne comprend pas comment faire, je crois que la fonction renvoie un pointeur sur un int mais donc est ce que le pointeur renvoyé pointera vers la premiere case de mon tableau je comprends pas trop.
    Merci

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par défaut
    Tu peux aller dire à ton prof que c'est un con, il n'y a aucun moyen de connaitre la taille des trois tableaux avec un prototype pareil.

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2007
    Messages : 257
    Par défaut
    Nan mais les tableaux censés etre passés en parametre dans la fonction sont declarés dans le main(avec taille fixé sans utiliser l'allocation dynamique de mémoire) donc je connais la taille des tableaux ceux sont deux tableaux de 200 int chacun,donc le nouveau tableau doit normalement etre de 400 int voila
    Mais le probleme c'est que je ne sais pas comment utiliser la fonction donnée précedemment pour résoudre la question,est ce que vecCat sera un pointeur sur la premiere case de ce nouveau tableau?

    je vous montre quand meme ce que j'ai fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    int * vecCat(int * vec1,int * vec2)
    {
    	int i;
    	for (i=0;i<vecLen(vec1);++i)
    		*(vecCat+i)=*(vec1+i);
        for (       ;i<=vecLen(vec1)+vecLen(vec2);++i)
    		*(vecCat+i)=*(vec2+i);
     
    }
    Voila ca c'est la définition de la fonction mais ca me donne erreur de compilation donc je ne sais pas.
    Sinon vecLen c'est une fonction qui renvoie la taille du tableau en parametre donc dans ce cas vec1 ou vec2.
    Merci

  4. #4
    Membre confirmé Avatar de zabibof
    Inscrit en
    Février 2007
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 188
    Par défaut
    1 - Tu as raison, tu devra renvoyer l'adresse de la première case du nouveau tableau.
    2 - Ta fonction doit renvoyer quelque chose, ce qui n'est pas le cas dans ton code
    3 - Tes vecCat partout, c'est louche.
    4 - Encore un devoir scolaire.

  5. #5
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2007
    Messages : 257
    Par défaut
    Je sais que ma fonction ne renvoie rien pour l'instant, sa définition n'est pas terminée mais justement c'est ma question, si je met "return vecCat;" ca me renverra l'adresse de quoi je pige pas trop tout ca jusque là je travaillez pas sur des retours de fonctions pareils.

  6. #6
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Citation Envoyé par zais_ethael Voir le message
    Tu peux aller dire à ton prof que c'est un con, il n'y a aucun moyen de connaitre la taille des trois tableaux avec un prototype pareil.
    +1

    Pour faire ça proprement, il faut passer la taille des tableaux en plus... Ou alors prendre un std::vector, mais là on sort complètement du domaine de compétence du prof !


  7. #7
    Membre confirmé Avatar de zabibof
    Inscrit en
    Février 2007
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 188
    Par défaut
    Citation Envoyé par poukill
    Pour faire ça proprement, il faut passer la taille des tableaux en plus... Ou alors prendre un std::vector, mais là on sort complètement du domaine de compétence du prof !
    Ben, il faut comprendre aussi le prof, c'est un exercice.

  8. #8
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2007
    Messages : 257
    Par défaut
    Bah le prof est docteur en informatique il sait ce qu'il fait.
    Je vous donne l'énoncé:
    Il ya une fonction nommé vecInput qui permet de remplir un tableau avec des valeurs jusqu'a qu'on insere une valeur négative.
    Donc la structure du tableau est:
    1)premiere partie de nombre positifs
    2)un nombre négatif
    3)puis des valeur présentes en memoire(car pas d'initialisation)
    Maintenant si j'ai deux tableaux comme cela, on me demande dans une question de copier ces nombres positifs de chaque tableau dans un troisieme tableau,donc la structure du troisieme tableau est:
    1)premiere partie nombres positifs issus du premier tableau
    2)deuxieme partie nombres positifs issus du deuxieme tableau
    Il s'agit de réaliser cette tache à l'aide d'une fonction dont le prototype est
    int * vecCat(int * vec1,int * vec2);
    voila
    si quelqu'un a une solution.
    Merci

  9. #9
    Membre confirmé Avatar de zabibof
    Inscrit en
    Février 2007
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 188
    Par défaut
    Citation Envoyé par Miko95
    si quelqu'un a une solution.
    Normalement, c'est toi qui devrais trouver la solution (tout seul), sinon, ce ne serait pas TON devoir, ici, on te donne simplement un petit coup de pouce.

  10. #10
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Citation Envoyé par Miko95 Voir le message
    Bah le prof est docteur en informatique il sait ce qu'il fait.
    Ca ne prouve rien...

    Comme remarquais je ne sais plus qui, tous les thésards scientifiques de sa connaissance utilisaient un ordinateur la majeure partie de leur temps, sauf un seul : Un qui faisait une thèse d'informatique...

    Etre un bon thésard en informatique ne demande pas tant d'être un bon développeur, mais d'être un bon théoricien. Après, rien n'empêche d'être aussi bon codeur, mais c'est annexe.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

Discussions similaires

  1. Réponses: 13
    Dernier message: 26/03/2011, 07h31
  2. Réponses: 9
    Dernier message: 22/02/2010, 13h49
  3. Réponses: 11
    Dernier message: 07/01/2008, 19h47
  4. [Système] retour de résultats par une fonction
    Par maximenet dans le forum Langage
    Réponses: 7
    Dernier message: 18/09/2006, 21h32
  5. [POO] Retour de données par une fonction (return)
    Par webrider dans le forum Langage
    Réponses: 6
    Dernier message: 26/08/2006, 21h49

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