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