Je ne comprends pas mon erreur:

Résolu
AlphaDragonsFR Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
AlphaDragonsFR Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je voudrais savoir quelle est ou quelles sont mes erreur quand le debuger de codeblock me dit "9 : label can only be part of a statement and a declaration is not a statement" et que à cette ligne 9 jusqu'à la 14 il y a :
9 int nombreMystere = 0;
10 int nombreEntre = 0;
11 int max = 0;
12 int min = 0;
13 int coups = 0;

Les 5 variables étaient à la base sur la même ligne, il n'y avait pas la variable "coups", j'ai compilé et ça a fonctionné ensuite j'ai rajouté "coups", compilé et là ce message apparaît donc je cherche une solution et me dit que en les mettant ligne par ligne je serais laquelle pose problème n' Mais le debuger me dit que c'est la ligne 9 qui pose problème alors je l'enlève et recompile mais toujours le message d'erreur alors je ne sais pas quoi faire.
Merci d'avance pour vos solutions.

PS : sachant que ce post est écrit sur mobile et que je n'ai pas d'ordinateur jusqu'à vendredi, il me sera impossible de vous fournir le code avant cette date. Sinon quand je pourrai je le mettrai à disposition.

3 réponses

[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Salut AlphaDragonsFR,

Juste avant la ligne 9, tu as dû définir un label, c'est à dire une étiquette (servant normalement de destination à un goto).

Un truc du genre :

int main(void) {
    /*
     * Selon le standard du C, un label est suivi d'une
     * instruction. Le code suivant cause donc une erreur 
     * "a label can only be part of a statement and a 
     * declaration is not a statement"
     */
toto:
    int nombreMystere = 0;
    int nombreEntre = 0;
    int max = 0;
    int min = 0;
    int coups = 0;

    return 0;
}

donne :

$ gcc -Wall alphadragonfr.c
alphadragonfr.c: In function ‘main’:
alphadragonfr.c:9:2: error: a label can only be part of a statement and a declaration is not a statement
int nombreMystere = 0;
^

non ? (ou en tout cas un identifiant en ligne 8, suivi de la ponctuation ":", donc "deux-points" et non "point-virgule", ce qui est la syntaxe d'un label)

Pour qu'une étiquette soit valablement définie, il faut qu'elle soit suivie d'une instruction, et non d'une déclaration.

L'erreur est signalée à la ligne 9, car la ligne 9 devrait contenir une instruction, et ce n'est pas le cas. L'origine de l'erreur, si mon hypothèse est bonne, serait cependant juste au dessus :-)


Dal
1
AlphaDragonsFR Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Euh je crois que c'est ca, j'ai bel et bien un label avant mes déclarations de variables, je te remercie.
Et en même temps je me rends compte que si j'avais su plus tôt qu'un label est une destination pour un goto, et non une valeur qu'on attribut à une variable comme je le pensais, je n'aurais pas eu besoin de demander sur un forum.
Bon bref je te remercie encore une dernière fois j'espère, en tout cas pour ce problème là.
Merci ( et oui encore une fois ) et au-revoir.
0
wasty56 Messages postés 97 Date d'inscription   Statut Membre Dernière intervention   45
 
bonjour
Je suis pas expert en prog C#
cela peux peut etre t'aider (les virgules dans l'association de tes variables :

int nombreMystere = 0, nombreEntre = 0,compteur=0; (*)
  • int coups = 0;




Cdt
0
Utilisateur anonyme
 
Bonjour

La question est posée dans le forum C, pas C#.
0
AlphaDragonsFR Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour
Oui c'est aussi ce qui m'est venue à l'esprit en premier, je me suis dit qu'il y avait un problème avec les virgules. Mais je ne le voyais pas, alors je les ai mis ligne par ligne pour ne plus avoir de virgules. Et ça ne fonctionnait pas. En j'ai surtout du mal à comprendre pourquoi ça fonctionnait au compilage CV avant que je rajoute la variable coups.

Donc en résumé , wasty56, j'ai déjà testé ta solution, et, comme toi, c'est le premier truc qui m'ai venu à l'esprit.
0
Utilisateur anonyme
 
Bonjour, le 9
  • c'est codeblock qui te l'affiche dans une zone dédiée aux numéros de lignes
  • c'est toi qui l'as mis
  • tu as copié le code depuis un site avec cette numérotation sans réfléchir

Quand j'étais petit, la mer Morte n'était que malade.
George Burns
0
AlphaDragonsFR Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Le 9 c'est le numéro de la ligne de code et le debuger me dit qu'il y a un problème à la ligne 9.
Sinon le code est de moi.
0
Utilisateur anonyme > AlphaDragonsFR Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Ok, alors je pense que tu devrais regarder ce que dit Dal
0