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 :

[Deb.]Retourne un pointeur depuis une fonc. a une autre


Sujet :

C++

  1. #1
    Membre actif
    Inscrit en
    Décembre 2003
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 491
    Points : 245
    Points
    245
    Par défaut [Deb.]Retourne un pointeur depuis une fonc. a une autre
    Bonjour,

    J'essaie de convaincre une fonction de passer l'adresse d'un tableau a une autre fonc. mais sans succes.

    Pour apprendre cette technique j'ai a ecrire le petit code qui suit et qui est sense faire les operations suivantes:

    1) Demande a l'utilisateur a travers un switch ce qu'il veut faire, cad creer ou non un tableau et le remplir .

    2) Remplir le tableau et l'afficher a l'ecran.

    3) La meme fonc. est sensee retourne un pointeur pour l'adresse du tableau a une deuxieme fonc. qui elle va cherche l'element le plus petit et l'afficher a l'ecran.

    Les points 1 et 2 marchent bien ce que je ne comprend pas c'est pourquoi je n'arrive pas a recuperer l'adresse de mon tableau qui existe dans ma fonc. de saisie.

    Ce qui m'ennuie c'est que j'arrive a compiler mais apres il plante



    Est-ce que quelqu'un peut me dire comment faire?

    D'avance merci

    marc_3


    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
    #include <iostream>
    using namespace std;
     
    int *foncSaisie(int Operd1);
     
    int mini(int , int* );
     
     
    int  main(void)
    {
    char ch;
    int Operd1, test;
    int *pT;
    test = 0;
    cout << "Ce programme est destine a creer un tableau d'entier dynamique"<< endl;
    cout << "et a renvoyer la valeur la plus petite"<< endl;
    cout << "Si vous voulez tenter l'experience entrez O sinon N  "<< endl;
    cin >> ch;
    switch (ch)
    {
    case 'O': ; 
    case 'o': cout << "Bienvenue, donnez moi le nombre d'elements du tableau"<< endl;
              cin >> Operd1;
              foncSaisie(Operd1);   
             //cout << "Adresse tableau"<< pT <<endl;
              mini(Operd1,  pT);
              test = 1;
              break; 
    case 'N': ;
    case 'n': cout << "Ma fois tant pis"<< endl;
              test = 0;
              break;
    default :  cout << "Choix non valide" << endl; 
              test = 0;
              break;
    }
    if (test = 0) {cout << "Chouette, allons a la plage"<< endl;}
       else{
    cout << "Adresse tableau"<< pT <<endl;
     
    cout << "\n" << endl;
    cout << "\n" << endl;
     
            }
        }
     
    int *foncSaisie(int Operd1){
    int *pT;
    cout << "Nous allons saisir les " <<Operd1 <<" valeurs du tableau"<< endl;
    int *pTab = new int [Operd1];
    pT = &pTab[0];
     
    for (int i = 0; i < Operd1; i++){
     cin >> pTab[i];    
        }
    cout << "Contenu de tableau"<< endl;
    for (int i = 0; i < Operd1; i++){
    cout<< pTab[i] << "," << endl;    
    cout << "\n" << endl;
    cout << "\n" << endl;
        }
     cout << "Adresse tableau"<< pT <<endl;
    return pT;
        };
     
    int mini(int Operd1, int *pT){
    int pluPti;
    pluPti = 0;
    for (int i = 0; i < Operd1; i++){
    if( pluPti > pT[i]){pluPti = pT[i];}    
    }
     
     
    cout << "Plus petit element du tableau " << pluPti << endl;
    cout << "\n" << endl;
    cout << "\n" << endl;
        };

  2. #2
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    int *foncSaisie(int Operd1){ 
    int *pT; 
    ....
    pT = new int [Operd1]; 
    for (int i = 0; i < Operd1; i++) 
     cin >> pT[i];    
    ....
    for (int i = 0; i < Operd1; i++){ 
    cout<< pT[i] << "," << endl;    
    .....
    return pT; 
        };
    Dans ton code, il y a un pT et un PTab : il y en a de superflu
    Mais l'erreur est dans main :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...
              pT =foncSaisie(Operd1);    
              mini(Operd1,  pT); 
    ...
    Ton compilateur aurait du te faire un avertissement sur pT non initialisé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cout << "Adresse tableau"<< pT <<endl;
    Que faire de ce genre d'information et qu'en déduire ?
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  3. #3
    Membre actif
    Inscrit en
    Décembre 2003
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 491
    Points : 245
    Points
    245
    Par défaut
    Merci pour la reponse, les valeur d'ont j'ai besoin sont passees.

    Il ne me reste plus que, a corrige le code pour qu'il fasse ce que je lui demande.

    La double decl. de var. c'est parsqu'il y a un momment que je patauge et que j'ai deja essaye quelque version entre temps ce qui m'a fait conclure que je n'avais pas compris comment le faire.

    merci encore

    marc_3

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  2. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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