Posez votre question Signaler

[C] Compilateur plante sur un scanf [Résolu]

quentin - Dernière réponse le 19 déc. 2007 à 18:46
Bonjour,
je suis en train de creer un sous programme pour un projet personel en C et j'obtiens une erreur qui me fait planter le compilateur à cet endroit du programme:
scanf("%d", l_choix);

Voilà le programme:
void nouvelle_partie()
{
clrscr();
                char personage[20];
                unsigned int l_choix;
gotoxy(25,2);
printf("Nouvelle Partie: \n\n\n");
printf("Nommez votre personage: ");
scanf("%s", personage);

        do{

        printf("\n\nChoisissez votre race: \n\n");
        printf("1- Mage Humain\n\n");
        printf("2- Archer Elfe\n\n");
        printf("3- Guerrier Nain\n\n");
        printf("4- Retour au menu\n\n");
        printf("5- Quitter\n\n");

                printf("Choisissez votre race: ");
                scanf("%d", l_choix);

                switch(l_choix){
                        case 1: humain();                break;
                        case 2: elfe();                  break;
                        case 3: nain();                  break;
                        case 4: menu();                  break;
                        case 5: break;
                }

                if(l_choix!=1 && l_choix!=2 && l_choix!=3 && l_choix!=4 && l_choix!=5)
                {
                printf("Merci de saisir un nombre entre 1 et 5");
                getch();
                }

        }while(l_choix!=5);
}

Le message d'erreur vient de windows, il s'agit, à mon avis, d'un dépassement de mémoire (mais je n'en suis pas vraiment sur)...
Voilà le message d'erreur:
Le projet Project1.exe a provoqué une classe d'exception EAccessViolation avec le message 'Violation d'accès à l'adresse 326636F7. Ecriture de l'adresse 00401214'. Processus stoppé. Utilisez le pas-à-pas ou Exécuter pour continuer.

Après avoir fait ok, je peux quitter en fermant le compilo, mais si je veux fermer mon invité de commande, il plante et me fait planter le compilo.
Merci d'avance de l'aide que vous pourrez m'apporter,
Quentin.
Lire la suite 

[C] Compilateur plante sur un scanf »

4 réponses
Réponse
+0
moins plus
il manque le & avant l_choix
Ajouter un commentaire
Réponse
+0
moins plus
Je viens de trouver tout seul, il manquait le & la variable... :roll:
Ajouter un commentaire
Réponse
+0
moins plus
http://en.wikipedia.org/wiki/Scanf

int main(void) {
int n;
while (scanf("%d", &n) > 0) // numeric &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
printf ("%d\n", n);
return 0;
}

int main(void) {
char word[20];
scanf("%19s", word); // string, pas de &&&&&&&&&&&&&&&&&
printf ("%s\n", word);
return 0;
}
Ajouter un commentaire
Réponse
+0
moins plus
merci, je viens de me rendre compte de cette erreur bête, c'est toujours au moment de demander de l'aide que je finis par trouver... *honte* lol
problème résolu.
Ajouter un commentaire
Ce document intitulé « [C] Compilateur plante sur un scanf » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?