Probleme pointeur ;( aidez moi
Résolu/Fermé
rimounatn
Messages postés
93
Date d'inscription
jeudi 24 décembre 2009
Statut
Membre
Dernière intervention
7 septembre 2010
-
29 déc. 2009 à 01:16
rimounatn Messages postés 93 Date d'inscription jeudi 24 décembre 2009 Statut Membre Dernière intervention 7 septembre 2010 - 29 déc. 2009 à 12:17
rimounatn Messages postés 93 Date d'inscription jeudi 24 décembre 2009 Statut Membre Dernière intervention 7 septembre 2010 - 29 déc. 2009 à 12:17
A voir également:
- Probleme pointeur ;( aidez moi
- Pointeur souris disparu windows 10 - Guide
- Pointeur souris - Guide
- Pointeur souris disparu pc portable asus - Guide
- Cercle bleu pointeur souris clignote en permanence windows 10 ✓ - Forum Windows 10
- Pointeur souris instable - Forum souris / Touchpad
5 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
29 déc. 2009 à 12:00
29 déc. 2009 à 12:00
Normal, si tu ne tiens en compte que la moitié de mon post...
Je te remets en italique la partie que tu n'as pas prise en compte :
En fait, cela n'affiche pas les adresses mais des valeurs bidons puisque tes variables iHeure, iMinute et iSeconde de ta fonction main ne sont initialisées à aucun moment. Ta fonction saisir_heure ne prend pas en arguments les variables, elle en utilise d'autres et les oublie. Il faut donc faire passer en arguments les adresses de iHeure, iMinute et iSeconde pour pouvoir les modifier par pointeur comme tu as fait dans ta fonction tick.
En gros, ta fonction saisir_heure doit avoir en argument saisir_heure(int *iH,int *iM, int *iS) comme pour la fonction tick. Et tu l'appelles de la même façon que l'appel à tick.
Je te remets en italique la partie que tu n'as pas prise en compte :
En fait, cela n'affiche pas les adresses mais des valeurs bidons puisque tes variables iHeure, iMinute et iSeconde de ta fonction main ne sont initialisées à aucun moment. Ta fonction saisir_heure ne prend pas en arguments les variables, elle en utilise d'autres et les oublie. Il faut donc faire passer en arguments les adresses de iHeure, iMinute et iSeconde pour pouvoir les modifier par pointeur comme tu as fait dans ta fonction tick.
En gros, ta fonction saisir_heure doit avoir en argument saisir_heure(int *iH,int *iM, int *iS) comme pour la fonction tick. Et tu l'appelles de la même façon que l'appel à tick.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
29 déc. 2009 à 01:27
29 déc. 2009 à 01:27
Salut,
En fait, cela n'affiche pas les adresses mais des valeurs bidons puisque tes variables iHeure, iMinute et iSeconde de ta fonction main ne sont initialisées à aucun moment. Ta fonction saisir_heure ne prend pas en arguments les variables, elle en utilise d'autres et les oublie. Il faut donc faire passer en arguments les adresses de iHeure, iMinute et iSeconde pour pouvoir les modifier par pointeur comme tu as fait dans ta fonction tick.
Par ailleurs, l'algorithmique de ta fonction tick est à revoir. Tu dois utiliser les diviseurs et les modulo.
Et enfin, une fonction de type int doit posséder au moins un return. Sinon elle doit être de type void.
Dans ton cas, passe plutôt toutes les fonctions en void sauf pour le main. Et pour le main, utilise return 0; avant l'accolade final.
Cdlt,
En fait, cela n'affiche pas les adresses mais des valeurs bidons puisque tes variables iHeure, iMinute et iSeconde de ta fonction main ne sont initialisées à aucun moment. Ta fonction saisir_heure ne prend pas en arguments les variables, elle en utilise d'autres et les oublie. Il faut donc faire passer en arguments les adresses de iHeure, iMinute et iSeconde pour pouvoir les modifier par pointeur comme tu as fait dans ta fonction tick.
Par ailleurs, l'algorithmique de ta fonction tick est à revoir. Tu dois utiliser les diviseurs et les modulo.
Et enfin, une fonction de type int doit posséder au moins un return. Sinon elle doit être de type void.
Dans ton cas, passe plutôt toutes les fonctions en void sauf pour le main. Et pour le main, utilise return 0; avant l'accolade final.
Cdlt,
rimounatn
Messages postés
93
Date d'inscription
jeudi 24 décembre 2009
Statut
Membre
Dernière intervention
7 septembre 2010
15
29 déc. 2009 à 11:57
29 déc. 2009 à 11:57
Merci bcp fiddy ,mais j'ai encore le mm probleme j'ai changer le type de retour de ma fonction tick en void et com j'ai passé par adresse mes variableiHaure,iMinute .., et j'ai mis return 0; à la fin de ma fonction main (), mais c'est encore le mm probleme,
enfaite le probleme est dans le passage des paramettres pour la fonction tick ;(
voici mon code:
#include <stdlib.h>
#include <stdio.h>
int afficher_heure(int *iH, int *iM, int *iS)
{
printf("il est %d , %d , %d", *iH,* iM,* iS);
}
int saisir_heure(){
int iH;
int iM;
int iS;
printf("enter l'heure");
scanf ("%d",&iH);
printf("enter le minute");
scanf ("%d",&iM);
printf("enter l'e seconde");
scanf ("%d",&iS);
}
void tick(int *iH, int *iM, int* iS)
{
*iS=*iS+1;
if(*iS>59){
*iM=*iM+1;
}
if(*iM>59){
*iH=*iH+1;
}
if(*iH==24){
*iH=0;
}
}
int main(){
int iHeure;
int iMinute;
int iSeconde;
saisir_heure();
tick(&iHeure,&iMinute,&iSeconde);
afficher_heure(&iHeure&,iMinute,&iSeconde);
return 0;
}
enfaite le probleme est dans le passage des paramettres pour la fonction tick ;(
voici mon code:
#include <stdlib.h>
#include <stdio.h>
int afficher_heure(int *iH, int *iM, int *iS)
{
printf("il est %d , %d , %d", *iH,* iM,* iS);
}
int saisir_heure(){
int iH;
int iM;
int iS;
printf("enter l'heure");
scanf ("%d",&iH);
printf("enter le minute");
scanf ("%d",&iM);
printf("enter l'e seconde");
scanf ("%d",&iS);
}
void tick(int *iH, int *iM, int* iS)
{
*iS=*iS+1;
if(*iS>59){
*iM=*iM+1;
}
if(*iM>59){
*iH=*iH+1;
}
if(*iH==24){
*iH=0;
}
}
int main(){
int iHeure;
int iMinute;
int iSeconde;
saisir_heure();
tick(&iHeure,&iMinute,&iSeconde);
afficher_heure(&iHeure&,iMinute,&iSeconde);
return 0;
}
rimounatn
Messages postés
93
Date d'inscription
jeudi 24 décembre 2009
Statut
Membre
Dernière intervention
7 septembre 2010
15
29 déc. 2009 à 12:17
29 déc. 2009 à 12:17
Merci bcp ca march mnt :)
voici mon code:
#include <stdlib.h>
#include <stdio.h>
int afficher_heure(int *iH, int *iM, int* iS)
{
printf("il est %d , %d , %d", *iH,* iM, *iS);
}
int saisir_heure(int *iH, int *iM, int* iS)
{
printf("enter l'heure");
scanf ("%d",iH);
printf("enter le minute");
scanf ("%d",iM);
printf("enter l'e seconde");
scanf ("%d",iS);
}
int tick(int *iH, int *iM, int* iS){
*iS=*iS+1;
if(*iS>59){
*iM=*iM+1;
}
if(*iM>59){
*iH=*iH+1;
}
if(*iH==24){
*iH=0;
}
}
int main(){
int iHeure;
int iMinute;
int iSeconde;
saisir_heure(&iHeure,&iMinute,&iSeconde);
tick(&iHeure,&iMinute,&iSeconde);
afficher_heure((&iHeure,&iMinute,&iSeconde);
}
merci encore une fois :)))
voici mon code:
#include <stdlib.h>
#include <stdio.h>
int afficher_heure(int *iH, int *iM, int* iS)
{
printf("il est %d , %d , %d", *iH,* iM, *iS);
}
int saisir_heure(int *iH, int *iM, int* iS)
{
printf("enter l'heure");
scanf ("%d",iH);
printf("enter le minute");
scanf ("%d",iM);
printf("enter l'e seconde");
scanf ("%d",iS);
}
int tick(int *iH, int *iM, int* iS){
*iS=*iS+1;
if(*iS>59){
*iM=*iM+1;
}
if(*iM>59){
*iH=*iH+1;
}
if(*iH==24){
*iH=0;
}
}
int main(){
int iHeure;
int iMinute;
int iSeconde;
saisir_heure(&iHeure,&iMinute,&iSeconde);
tick(&iHeure,&iMinute,&iSeconde);
afficher_heure((&iHeure,&iMinute,&iSeconde);
}
merci encore une fois :)))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
rimounatn
Messages postés
93
Date d'inscription
jeudi 24 décembre 2009
Statut
Membre
Dernière intervention
7 septembre 2010
15
29 déc. 2009 à 12:17
29 déc. 2009 à 12:17
Merci bcp ca march mnt :)
voici mon code:
#include <stdlib.h>
#include <stdio.h>
int afficher_heure(int *iH, int *iM, int* iS)
{
printf("il est %d , %d , %d", *iH,* iM, *iS);
}
int saisir_heure(int *iH, int *iM, int* iS)
{
printf("enter l'heure");
scanf ("%d",iH);
printf("enter le minute");
scanf ("%d",iM);
printf("enter l'e seconde");
scanf ("%d",iS);
}
int tick(int *iH, int *iM, int* iS){
*iS=*iS+1;
if(*iS>59){
*iM=*iM+1;
}
if(*iM>59){
*iH=*iH+1;
}
if(*iH==24){
*iH=0;
}
}
int main(){
int iHeure;
int iMinute;
int iSeconde;
saisir_heure(&iHeure,&iMinute,&iSeconde);
tick(&iHeure,&iMinute,&iSeconde);
afficher_heure((&iHeure,&iMinute,&iSeconde);
}
merci encore une fois :)))
voici mon code:
#include <stdlib.h>
#include <stdio.h>
int afficher_heure(int *iH, int *iM, int* iS)
{
printf("il est %d , %d , %d", *iH,* iM, *iS);
}
int saisir_heure(int *iH, int *iM, int* iS)
{
printf("enter l'heure");
scanf ("%d",iH);
printf("enter le minute");
scanf ("%d",iM);
printf("enter l'e seconde");
scanf ("%d",iS);
}
int tick(int *iH, int *iM, int* iS){
*iS=*iS+1;
if(*iS>59){
*iM=*iM+1;
}
if(*iM>59){
*iH=*iH+1;
}
if(*iH==24){
*iH=0;
}
}
int main(){
int iHeure;
int iMinute;
int iSeconde;
saisir_heure(&iHeure,&iMinute,&iSeconde);
tick(&iHeure,&iMinute,&iSeconde);
afficher_heure((&iHeure,&iMinute,&iSeconde);
}
merci encore une fois :)))