Bonjour,
Je suis arrivé au chapitre 10 et j'ai ( presque ) réussi le 1er exo.
Pourquoi presque ? Ce que je fais me parait cohérent mais la sortie l'est un peu moins
Je vous donne l'énoncé ;
La fonction est nommée "fonction", le pointeur statique est "point2" et le pointeur qui me sert d'argument est "point"Créez une fonction avec une variable statique qui est un pointeur (avec un argument par défaut à zéro).
Quand l'appelant fournit une valeur pour cet argument, elle est utilisée pour pointer au début d'un tableau de
int. Si vous appelez la fonction avec un argument à zéro (utilisant l'argument par défaut), la fonction retourne
la prochaine valeur dans le tableau, jusqu'à ce qu'il voit une valeur “-1” dans le tableau (pour agir comme
indicateur de fin de tableau). Testez cette fonction dans le main( ).
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 #include <iostream> using namespace std; // #1 void fonction( int* point = 0 ){ static int* point2; if ( point == 0 ){ for (int i = 0 ; (*point2) != -1 ;i++ ){ point2 += i; cout << *point2 << endl; } } else { point2 = point; cout << "tableau charge : " << point2 << endl; } } int main(){ int tab[5] = { 42 , 7 , 5 , -8 , -1}; int taab[6] = { 83 , 83 , -83 , -1 , 42}; fonction(&tab[0]); fonction(); fonction (&taab[0]); fonction (); return(0); }
Merci d'avance pour vos critiques
Edit : Je crois que je me fais avoir sur la taille du pointeur
Partager