Aller au contenu


Photo
- - - - -

Programmation en C


  • Veuillez vous connecter pour répondre
4 réponses à ce sujet

#1 philou-RX

philou-RX

    Habitué

  • Membres
  • PipPip
  • 261 messages
  • Gender:Male
  • Location:Riviera - Vaudoise

Posté 15 juillet 2014 - 07:21

Bonjour tout le monde,

Me revoici avec mes quelques questions, ici toujours en C (mais pur) :pardon:/>

Voilà j'ai une erreur de compilation que je ne comprends pas lors d'une déclaration :

int colonne = 2; 
int tb [][colonne] = {blblabla};


PS: le blblabla n'a pas d'intérêt ici !

le compilateur "wingw32-gcc" de code block (sous windows 7) ne m'accepte cette déclaration - par contre si j'écris directement

int tb [][2] = {blblabla}; 

La c'est bon... ?!?! pourquoi je ne peux déclarer une variable colonne à l'initialisation de mon tableau, alors qui si je veux lire ce tableau dans une boucle for la je peux placer une nom de variable

Avez-vous une explication ?

Bonne lecture
Amicalement le cht'y Philou
Amicalement PHILOU QUI a BU, BOIRA !!! VU euh non BU! alcoolique non, assoiffé OUI^^ :P :|

#2 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 211 messages
  • Gender:Male
  • Location:Autriche

Posté 15 juillet 2014 - 08:16

Bonjour tout le monde,

Me revoici avec mes quelques questions, ici toujours en C (mais pur) :pardon:/>/>

Voilà j'ai une erreur de compilation que je ne comprends pas lors d'une déclaration :

int colonne = 2; 
int tb [][colonne] = {blblabla};


PS: le blblabla n'a pas d'intérêt ici !

le compilateur "wingw32-gcc" de code block (sous windows 7) ne m'accepte cette déclaration - par contre si j'écris directement

int tb [][2] = {blblabla}; 

La c'est bon... ?!?! pourquoi je ne peux déclarer une variable colonne à l'initialisation de mon tableau, alors qui si je veux lire ce tableau dans une boucle for la je peux placer une nom de variable

Avez-vous une explication ?

Bonne lecture
Amicalement le cht'y Philou


Salut !

La réponnse se trouve ici : http://fr.wikibooks.org/wiki/Programmation_C/Tableaux
Ici, tu déclares un tableau statique. Les tailles doivent donc être définies lors de la compilation. Avec une variable, ça n'est pas le cas. Si tu déclares ton "int colonne" const, ça devrait marcher (parce que ça assure le compilateur que tu ne vas pas changer la taille au cours de l'exécution). Comme dit dans le lien, si tu veux pouvoir changer la taille du tableau en cours d'exécution, il faut déclarer un pointeur et lui allouer dynamiquement de l'espace mémoire.
R1D1 - Calculo Sed Ergo Sum -- en ce moment, M.A.R.C.E.L.
Avatar tiré du site bottlebot

#3 Piquillos64

Piquillos64

    Membre

  • Membres
  • 23 messages
  • Gender:Male
  • Location:Biarritz

Posté 27 novembre 2014 - 10:30

ou sinon 

#define NB_COLONNE 2

int tb [][colonne] = {blblabla};



#4 philou-RX

philou-RX

    Habitué

  • Membres
  • PipPip
  • 261 messages
  • Gender:Male
  • Location:Riviera - Vaudoise

Posté 18 mai 2015 - 11:13

Bijour à tous, 

 

Me voici avec une nouvelle question de 'C' (C ca que C bon  :crazy:

 

Dans la boucle ci-dessous, j'aimerai sortir de celle-ci si 'car_retour' est égale 'CHOIX_FLOTTANT' ou 'CHOIX_ENTIER'

    //--- boucle pour choisir un choix d'option
    do
    {
        //--- message afficher à l'utilisateur ---//
        ....

        //--- demander à l'utilisetur de choisir une option ---//
        ....

        //--- lecture du caractère en retour ---//
        car_retour = Select_Var_Cara();

    //---condition de sortie : obliger de choisir une possibilité ---//
    }while((car_retour != CHOIX_ENTIER) || (car_retour != CHOIX_FLOTTANT));

mais c'est le contraire qui se passe, je reste dans la boucle si  'car_retour' est égale 'CHOIX_FLOTTANT' ou 'CHOIX_ENTIER'... 

 

C'est pas logique ...

 

Si vous avez une solus c'est bien...

 

Amitié - le xcht'y Philou 


Amicalement PHILOU QUI a BU, BOIRA !!! VU euh non BU! alcoolique non, assoiffé OUI^^ :P :|

#5 Piquillos64

Piquillos64

    Membre

  • Membres
  • 23 messages
  • Gender:Male
  • Location:Biarritz

Posté 18 mai 2015 - 01:51

Bonjour,

 

essaie ça:

while((car_retour != CHOIX_ENTIER) && (car_retour != CHOIX_FLOTTANT));

 

je pense que ca devrait fonctionner...!






0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users