"Pointeur et printf", phénomène que je ne m'explique pas!!!
Résolu/Fermé
evilfalcon
Messages postés
58
Date d'inscription
samedi 15 décembre 2012
Statut
Membre
Dernière intervention
10 novembre 2015
-
Modifié par evilfalcon le 7/10/2014 à 12:08
evilfalcon Messages postés 58 Date d'inscription samedi 15 décembre 2012 Statut Membre Dernière intervention 10 novembre 2015 - 8 oct. 2014 à 08:56
evilfalcon Messages postés 58 Date d'inscription samedi 15 décembre 2012 Statut Membre Dernière intervention 10 novembre 2015 - 8 oct. 2014 à 08:56
A voir également:
- "Pointeur et printf", phénomène que je ne m'explique pas!!!
- Pointeur souris disparu pc portable - Guide
- Pointeur souris - Guide
- Phénomène film complet en français gratuit - Forum Cinéma / Télé
- Pointeur souris disparu pc portable asus - Guide
- Problème pointeur souris excel ✓ - Forum Excel
5 réponses
sambia39
Messages postés
610
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
9 février 2023
49
7 oct. 2014 à 11:59
7 oct. 2014 à 11:59
Bonjour
C'est bien de donner les détails mais on n'a pas le code sources que tu voulais poster, pourrais ton l'avoir afin de comprendre ce qu'il on est ?
;) à bientôt
C'est bien de donner les détails mais on n'a pas le code sources que tu voulais poster, pourrais ton l'avoir afin de comprendre ce qu'il on est ?
;) à bientôt
evilfalcon
Messages postés
58
Date d'inscription
samedi 15 décembre 2012
Statut
Membre
Dernière intervention
10 novembre 2015
7 oct. 2014 à 12:05
7 oct. 2014 à 12:05
Oui! Pas de problème! Tu m'as juste pris de cour! comme j'ai missclic sur valider, avant de finir mon topic! Tu ne pouvez pas avoir toutes les informations!
sambia39
Messages postés
610
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
9 février 2023
49
7 oct. 2014 à 12:38
7 oct. 2014 à 12:38
je sais pas trop quel est ton but c'est de voir les adresses ou effectuer des opérations simples ? vu le code :)
evilfalcon
Messages postés
58
Date d'inscription
samedi 15 décembre 2012
Statut
Membre
Dernière intervention
10 novembre 2015
Modifié par evilfalcon le 7/10/2014 à 13:59
Modifié par evilfalcon le 7/10/2014 à 13:59
Mon but: faire un opération simple de soustraction! Par contre je travail avec des fractions!
J'ai affiché les adresses lors de ma recherche de debuggage! Je travail seul, et si vraiment je ne trouve pas ou je ne comprend pas! Je demande de l'aide!
La j'ai trouvé d'ou viens l'erreur, mais je ne comprend pas ce phénomène!!!!
Je comprend pas pourquoi, j'ai &negative = &somme[1]! (dans ce cas la, je parle de l'adresse de la variable négative et de l'adresse de la second case du tableau).
Pour preuve, sur cette partie du code (juste en dessous du commentaire phénomène bizarre:
Sur le premier printf, j'ai somme[1] = 4 et negative = 4 (par exemple),
sur le deuxiéme, j'ai somme[1] = 1 et negative = 1.
Pour debbugger, je rajout dela:
Ca marche très bien!!!!!
Je vous le donne le code des trois programmes que j'ai créé:, c'est à dire:
"saisie"
"cal_add"
"reduction"
Le programme "saisie", me sert à rentrer les deux fraction, dans le tableau tab_chiffre
voici, le code:
le programme cal_add faire la somme et de me rendre la somme ou la différence:
voici le code:
et enfin le programme reduction qui me donne la fraction irreductible.
le code est:
J'ai affiché les adresses lors de ma recherche de debuggage! Je travail seul, et si vraiment je ne trouve pas ou je ne comprend pas! Je demande de l'aide!
La j'ai trouvé d'ou viens l'erreur, mais je ne comprend pas ce phénomène!!!!
Je comprend pas pourquoi, j'ai &negative = &somme[1]! (dans ce cas la, je parle de l'adresse de la variable négative et de l'adresse de la second case du tableau).
Pour preuve, sur cette partie du code (juste en dessous du commentaire phénomène bizarre:
printf("somme[0] = %d, somme[1] = %d, negative = %d \n",somme[0], somme[1], negative); if (somme[0] < 0) { somme[0] = -1 * somme[0]; negative = 1; } printf("somme[0] = %d, somme[1] = %d, negative = %d \n",somme[0], somme[1], negative);
Sur le premier printf, j'ai somme[1] = 4 et negative = 4 (par exemple),
sur le deuxiéme, j'ai somme[1] = 1 et negative = 1.
Pour debbugger, je rajout dela:
void soustraction (int choix_menu, int tab_chiffre[3]) { int somme[1]; int negative = 0; int* Pointeur_somme = &somme; int* Pointeur_negative = &negative;
Ca marche très bien!!!!!
Je vous le donne le code des trois programmes que j'ai créé:, c'est à dire:
"saisie"
"cal_add"
"reduction"
Le programme "saisie", me sert à rentrer les deux fraction, dans le tableau tab_chiffre
voici, le code:
#include <stdio.h> #include <stdlib.h> void saisie(int tab_chiffre[3]) { char confirmer='N'; do { printf("numerateur du chiffre 1?\n"); scanf("%d",&tab_chiffre[0]); printf("denumerateur du chiffre 1?\n"); scanf("%d",&tab_chiffre[1]); printf("numerateur du chiffre 2?\n"); scanf("%d",&tab_chiffre[2]); printf("denumerateur du chiffre 2?\n"); scanf("%d",&tab_chiffre[3]); getchar(); printf("Vos chiffres sont %d/%d et %d/%d \nconfirmer cette selection? (Y/N) \n",tab_chiffre[0],tab_chiffre[1],tab_chiffre[2],tab_chiffre[3]); scanf("%c",&confirmer); printf("\n"); }while((confirmer !='y') && (confirmer !='Y')); }
le programme cal_add faire la somme et de me rendre la somme ou la différence:
voici le code:
#include <stdio.h> #include <stdlib.h> void cal_add(int tab_chiffre[3], int somme[1]) { somme[0]=(tab_chiffre[0]*tab_chiffre[3])+(tab_chiffre[1]*tab_chiffre[2]); somme[1]=tab_chiffre[1]*tab_chiffre[3]; }
et enfin le programme reduction qui me donne la fraction irreductible.
le code est:
#include <stdio.h> #include <stdlib.h> void reduction(int somme[1]) { int nb1= somme[0]; int nb2= somme[1]; int nb3= 0; if (somme[0] == somme[1]) { somme[0] = 1; somme[1] = 1; } else { if (nb1 < nb2) { nb3 = nb2; nb2 = nb1; nb1 = nb3; } do { if (nb1 >= nb2) { nb3 = nb1 - nb2; //printf("%d - %d = %d\n",nb1,nb2,nb3); nb1 = nb3; } else { nb1 = nb2; nb2 = nb3; } //printf("nb1 = %d, nb2 = %d, nb3 = %d\n",nb1,nb2,nb3); }while(nb3 != 0); //printf("le pgcd est %d",nb2); somme[0]=somme[0]/nb2; somme[1]=somme[1]/nb2; } }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
7 oct. 2014 à 22:04
7 oct. 2014 à 22:04
Bonjour,
J'ai lu le début de ton code et me suis arrêté à la 1ère erreur.
int somme[1];
int tab_chiffre[3];
Cela veut dire que tu crées un tableau somme de 1 case et un tableau de tab_chiffre de 3 cases.
Donc, somme[0] existe mais pas somme[1].
De même, tab_chiffre[0], tab_chiffre[1] et tab_chiffre[2] existent mais pas tab_chiffre[3]. Si tu les utilises, tu lis ou écris à l'adresse d'une variable située à côté dans la pile...
Cdlt,
J'ai lu le début de ton code et me suis arrêté à la 1ère erreur.
int somme[1];
int tab_chiffre[3];
Cela veut dire que tu crées un tableau somme de 1 case et un tableau de tab_chiffre de 3 cases.
Donc, somme[0] existe mais pas somme[1].
De même, tab_chiffre[0], tab_chiffre[1] et tab_chiffre[2] existent mais pas tab_chiffre[3]. Si tu les utilises, tu lis ou écris à l'adresse d'une variable située à côté dans la pile...
Cdlt,
evilfalcon
Messages postés
58
Date d'inscription
samedi 15 décembre 2012
Statut
Membre
Dernière intervention
10 novembre 2015
7 oct. 2014 à 22:51
7 oct. 2014 à 22:51
La première case mémoire pour le tableau et ensuite pour pour ma variable!
Donc ils ont la même adresse! C'est tous a fait possible! je compile! et je regarde ce que cela donne!
merci
Donc ils ont la même adresse! C'est tous a fait possible! je compile! et je regarde ce que cela donne!
merci
evilfalcon
Messages postés
58
Date d'inscription
samedi 15 décembre 2012
Statut
Membre
Dernière intervention
10 novembre 2015
8 oct. 2014 à 08:56
8 oct. 2014 à 08:56
Je viens de faire d'essayer cette modification! C'était cela!
Merci à tous!
Merci à tous!