Bonsoir
J'essaye de faire un programme tout bidon qui prend un pointeur(8x) et me donne ca valeur j'ai réussis avec ma fonction putnbr (voir les commentaire dans le code)
tout fonctionne mais voila j'essaye de l'appeler avec printf et la j'ai des warning ainsi qu'une valeur negative -1392384820 qui s'affiche a la place du résultat attendu même en essayant de comprendre les warning mais j'ai du mal si quelqu'un peut m'éclaircir la situation ca serait cool
Voici le code
Voici un autre programme tout aussi simple voir plus et la tout fonctionne correctement
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 #include <unistd.h> #include <stdio.h> void ft_putchar(char c) { write(1, &c, 1); } void ft_putnbr(int nb) { if (nb < 0) { ft_putchar('-'); nb = -nb; } if (nb >= 0 && nb <= 9) { ft_putchar(nb + '0'); } if (nb >= 10) { ft_putnbr(nb / 10); ft_putnbr(nb % 10); } } void ft_ultimate_ft(int *********nbr) { *********nbr = 42; //ft_putnbr(*********nbr); } int main() { int a; int *ptr; int **ptr2; int ***ptr3; int ****ptr4; int *****ptr5; int ******ptr6; int *******ptr7; int ********ptr8; int *********ptr9; ptr = &a; ptr2 = &ptr; ptr3 = &ptr2; ptr4 = &ptr3; ptr5 = &ptr4; ptr6 = &ptr5; ptr7 = &ptr6; ptr8 = &ptr7; ptr9 = &ptr8; ft_ultimate_ft(&ptr9); printf("%d", ptr9); //ft_putnbr(a); }
J'appel ft_swap avec comme argument l'adresse de ceux sur quoi pointe A et ainsi que de B qui grace a la fonction ft_swap va alterne les adresse des arguments c'est a dire A et B, mais le principe et le meme je récupère (&) et j'affiche donc je comprend pas que sur mon premier code ca ne fonctionne pas
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 #include <unistd.h> #include <stdio.h> void ft_putchar(char c) { write(1, &c, 1); } void ft_putnbr(int nb) { if (nb < 0) { ft_putchar('-'); nb = -nb; } if (nb >= 0 && nb <= 9) { ft_putchar(nb + '0'); } if (nb >= 10) { ft_putnbr(nb / 10); ft_putnbr(nb % 10); } } void ft_swap(int *a, int *b) { int ptr; ptr = *a; *a = *b; *b = ptr; /* ft_putnbr(*a); ft_putchar('\n'); ft_putnbr(*b); ft_putchar('\n'); */ } int main(void) { int a = 10; int b = 20; ft_swap(&a,&b); printf("%d-----%d", a, b); }
Partager