salut, jai un tp en C et ja un souci.
Jai une saisie a verifier et ce doit etre obligatoirement numerique.
voila la demande de saisie(jai raccourci un peu jai mis que le necessaire)
Code :
printf("RETARD(S): " );
scanf("%c",&machin);//%c pour prendre que le 1er caractère saisi au cas ou il tape plus d'1 car.
verifnum(machin);
et voila la fonction verifnum(). J'utilise la fonction pcq je fais d'autres verifications autre part et jve pas faire copier/coller
Code :
void verifnum(char *machin)
{
int retard;
retard=*machin;
while(isdigit(retard)==0)//isdigit() verifie si le caractere tapé est un chiffre
Lance en debug (touche F5), et quand tu aura "unhandled exception" regarde dans la pile de fonction où est-ce que ça plante.
Enlève le flushall() c'est surement lui qui supprime des pointeurs.
Ok, j'avais pas vu, ta fonction prend en paramètre un char * et tu lui donne un char (machin). Donc:
- soit en paramètre tu mets char tout court
- soit tu passes &machin et pas machin pour avoir le char*
En fait il prend la valeur du char convertit le contenu en pointeur et l'utilise, donc tu utilise un pointeur sur une zone mémoire protégée
Pour le 2eme warning, n'as-tu pas un prototype dans un .h qui n'est pas exactement comme ta fonction (du genre un qui déclare char tout court et l'autre char*)
Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois. Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.