[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:
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;
}; |