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