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 :

Problème tableaux c++


Sujet :

C++

  1. #1
    Membre averti
    Inscrit en
    Février 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 50
    Par défaut Problème tableaux c++
    Bonjour,

    J'ai un petit problème pour la création d'un tableau en C++ car je suis débutant en C++.

    Je cherche à créer un tableaux de deux dimensions cependant le problème est que le tableau demande une valeur constante en entrée...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    unsigned long sizeX;
    unsigned long sizeY;
    sizeX=reader->GetOutput()->GetRequestedRegion().GetSize(0);
    sizeY=reader->GetOutput()->GetRequestedRegion().GetSize(1);
    const double box=100;
    const double step=10;
    const double next=box-step;
    const double iteration_X=floor(sizeX/next);
    const double iteration_Y=floor(sizeY/next);
    const int box_number=iteration_Y*iteration_X;
    int box_location[box_number][2];
    cependant lorsque je compile, j'obtiens l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    2>..\Hello\HelloWorld.cxx(179) : error C2057: expression constante attendue
    2>..\Hello\HelloWorld.cxx(179) : error C2466: impossible d'allouer un tableau de taille constante 0
    2>..\Hello\HelloWorld.cxx(179) : error C2133: 'box_location'*: taille inconnue
    Si quelqu'un a une solution je suis preneur...

    D'avance merci

    Bonne journée

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Les déclarations de type

    ne fonctionnent que si a et b sont des constantes connues à la compilation.

    Ici, box_number dépend de sizeX et sizeY, qui ne sont connues qu'à l'exécution, le compilateur ne peut donc créer le tableau,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int box_location[box_number][2];
    c'est pour cela qu'il râle. Remplace cette déclaration par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vector<int> box_location[2*box_number];
    et, dans ton code,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    box_location[i][j];
    par
    box_location[2*i+j];
    et tout ira bien...

    Francois

  3. #3
    Membre averti
    Inscrit en
    Février 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 50
    Par défaut
    Merci François pour ta réponse qui n'a malheureusement pas marché.

    cependant j'ai réussi avec ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::vector< std::vector< int > > box_location(box_number,std::vector<int> (2,0));
    Merci encore

  4. #4
    Invité
    Invité(e)
    Par défaut
    Ah oui, pardon, il devait falloir des parenthèses là

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vector<int> box_location(2*box_number);
    Francois

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Problème]Tableaux deux dimensions
    Par maloute80 dans le forum Langage
    Réponses: 4
    Dernier message: 14/12/2007, 14h31
  2. Réponses: 4
    Dernier message: 20/06/2007, 17h34
  3. C++ Problème tableaux
    Par killer75 dans le forum C++
    Réponses: 2
    Dernier message: 08/06/2007, 17h08
  4. Problèmes tableaux IE
    Par shadokk dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 19/12/2006, 14h23
  5. Problèmes tableaux !
    Par Franck.H dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 09/08/2006, 12h51

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