IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

non l-value in unary '&'


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 4
    Par défaut non l-value in unary '&'
    Bonjour,
    J'obtiens cet erreur en compilant : non l-value in unary '&' ca veut dire quoi?
    J'utilise dev C++
    Voila une PARTIE de mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    #include<time.h>
    #define nbMine 10
    #define nombreLigne 9
    #define nombreColonne 9
    int i=0, j=0;
    int tab[nombreLigne][nombreColonne];
    void personalise(void)
    {
        int Ligne=-1, Colonne=-1;
        printf("=>Personalisation du jeu<=");
        while(Ligne<1 || Ligne>10)
        {puts("\n\nDe quelle longueur voulez vous que votre champ de mine soit? (9 par defaut)");
        scanf("%d", &nombreLigne);
        Ligne=nombreLigne;}
        while(Colonne<1 || Colonne>10)
        {puts("\n\nDe quelle largeur voulez vous que votre champ de mine soit? (9 par defaut)");
        scanf("%d", &nombreColonne);
        Colonne=nombreColonne;}
        do{
        puts("\n\nCombien de mines voulez vous avoir a desamorcer? (10 par defaut)");
        scanf("%d", &nbMine);
        }while(nbMine>nombreLigne*nombreColonne);
    }
     
    void choisir (void) 
    {
         int choix;
     
              textcolor(2);
              printf("Que voulez vous faire?\n\t-1 Commencer a jouer\n\t-2 Personnaliser le jeu\n\t-3 Voir les regles du jeu\n");
              scanf("%d", &choix);
              system("cls");
              switch(choix)
              {
                           case 1 :
                                {
                                printf("Veuillez entrer votre niveau de jeu : \n\t-1 Debutant\n\t-2 Intermediaire\n\t-3 Expert\n");
                                scanf("%d",&choix);
                                switch(choix)
                                {
                                             case 1 : 
                                                  {
                                                      nombreLigne=9;
                                                      nombreColonne=9;
                                                      nbMine=10;
                                                  }
                                                  break;
                                             case 2 : 
                                                  {
                                                        nombreLigne=10;
                                                        nombreColonne=10;
                                                        nbMine=40;
                                                  }
                                                       break;
                                             case 3 : 
                                                  {
                                                       nombreLigne=10;
                                                       nombreColonne=10;
                                                       nbMine=60;
                                                  }
                                                                break;
                                                            default : ;
                                }
                                }
                                break;
                           case 2 : 
                                personalise ();
                                     break;
                           case 3 : 
                                          printf("=>Les Regles du jeu<=\n\nLe jeu se presente sous la forme d'un tableau de cases a deux dimensions. Certaines cases contiennent des mines. Au depart toutes les cases sont masquees (et on ne voit donc pas les mines). L'objectif est de localiser les mines (le nombre de mines restant a localiser etant donne au joueur). Le joueur peut au choix decouvrir le contenu d'une case, ou la marquer pour signaler la presence d'une mine (c'est son hypothese et le decompte des mines se fixe la dessus). Les cases decouvertes affichent le nombre de mines dans les 8 cases voisines, sauf si la case contient elle meme une mine (auquel cas le joueur meurt et la partie est termine). Si le joueur n'est pas mort, la partie se termine lorsque le joueur a decouvert toutes les cases (sauf celles avec les mines). Son score est le temps mis pour terminer.\n");
                                          break;
                           default : ;
              }
              }
    void jeu ( )
    {;}
     
    void affichage_tableau (void)
    {
         printf("    ");//4 espace
         for(j=0;j<nombreColonne;j++)//revoir l'initialisation avc la convention
              {
                              printf("%d ",j);
              }
              printf("\n  -");
              for(j=0;j<nombreColonne;j++)
              {
              printf("--");
              }
              for(i=0;i<nombreLigne;i++)
              {
                              puts(" ");
                              printf("%d | ",i);
                              for(j=0;j<nombreColonne;j++)
                              {
                                              printf("x ",tab[i][j]); // affichage du tableau
                              }
              }
              puts("\n");
    }
     
     
    main(void)
    {
              int lignemine,colonnemine,recommencer,tabcase[nombreLigne][nombreColonne], i, j,mine=0,mineAlentour=0,reponse,confirmCase,compteurMine=10,caseDecouverte=0,nbCase=81;
              do{
              system("cls");
              textcolor(4);
              printf("\n\n\n\n\t\t\t\t===>>>LE DEMINEUR<<===\n\n\n\n");
              textcolor(2);
              choisir();
              nbCase=nombreColonne*nombreLigne;
              system("pause");
              system("cls");    
              affichage_tableau( );
    Aidez moi par pitié

  2. #2
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Salut,

    Ca serait sympa de nous indiquer la ligne incriminée

  3. #3
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    J'obtiens cet erreur en compilant : non l-value in unary '&' ca veut dire quoi?
    ca veut dire que tu appliques l'opérateur &, adresse de quelque chose, à un élément qui n'a pas d'adresse, autrement dit qui n'est pas une variable (ou qui est un champ de bits d'une structure).
    Apparemment, ce n'est pas dans le segment de code que tu as posté

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 392
    Par défaut
    Si, ça y est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #define nombreLigne 9
     
    ...
     
    scanf("%d", &nombreLigne);
    didy_gwatinik a essayé d'avoir le beurre et l'argent du beurre, c'est-à-dire une variable qu'on peut utiliser comme dimension d'un tableau statique (bizarrement, APRÈS la création dudit tableau... Même avec les VLA, on ne peut pas faire ça...).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. Réponses: 5
    Dernier message: 07/06/2010, 11h18
  2. Process 5843 exited with non zero value (63): results may be incorrect
    Par K2000 dans le forum x86 32-bits / 64-bits
    Réponses: 1
    Dernier message: 28/04/2009, 11h32
  3. Réponses: 3
    Dernier message: 15/12/2007, 13h27
  4. Erreur dev c++ non value assignement
    Par insomniak dans le forum Dev-C++
    Réponses: 12
    Dernier message: 22/09/2005, 18h12
  5. Liste deroulante et VALUE non conforme a la realité
    Par ahage4x4 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 27/05/2005, 13h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo