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 :

Erreur avec "Struct"


Sujet :

C++

  1. #1
    Membre habitué
    Inscrit en
    Avril 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 11
    Par défaut Erreur avec "Struct"
    Bonjour,
    J'ai un erreur de compilation avec cet instruction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    struct pointDetail pointList1[number_of_corners_A];
    j'obtient l'erreur suivant:
    error C2057: expected constant expression
    error C2466: cannot allocate an array of constant size 0
    error C2133: 'pointList1' : unknown size
    est ce que quelqu'un peut m'aider?

  2. #2
    Membre confirmé
    Inscrit en
    Avril 2002
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 180
    Par défaut
    le compilateur n'est pas capable de determine la valeur de number_of_corners_A.
    a mon avis number_of_corners_A n'est pas une constante

    tu devrais pouvoir faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    //allocation sur la plie
    const int number_of_corners_A = 4;
    struct pointDetail pointList1[number_of_corners_A];
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    //allocation dans le tas
    int number_of_corners_A = 4;
    struct pointDetail pointList1 = new pointDetail[number_of_corners_A];

  3. #3
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Bonjour,
    Effectivement, le C++ ne permet pas de construire des tableaux dont la taille n'est pas connue à la compilation.
    Je rajouterais deux remarques :
    1. Nul besoin de répéter struct dans la déclaration de ta variable :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      pointDetail pointList1[4];
    2. Utilises std::vector à la place des tableaux à la 'C'. En C++, cela t'offre les mêmes services mais avec beaucoup moins de soucis :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      std::vector<pointDetail> pointList1(number_of_corners_A);

  4. #4
    Membre habitué
    Inscrit en
    Avril 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 11
    Par défaut
    Bonjour,
    Merci pour votre reponse, je fixe la taille du structure mais j'obtient des erreurs qui je ne les comprend pas:
    error C2143: syntax error : missing ')' before 'constant'
    error C2143: syntax error : missing ';' before 'constant'
    error C2059: syntax error : ')'
    error C2143: syntax error : missing ';' before '{'

    error C2447: '{' : missing function header (old-style formal list?)

    et tous ces erreurs sont autour de ce ligne :
    int matchingSSD(IplImage* outputImage, CvPoint *mainPoint, CvPoint *listSSD, int number_of_corners_A, int number_of_corners_B, CvPoint *listPoint1, CvPoint *listPoint2, IplImage* g1img, IplImage* g2img)
    {
    Merci en avance

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2002
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 180
    Par défaut
    Tes erreurs s'ont des erreurs de sintaxe

    error C2143: syntax error : missing ')' before 'constant'
    error C2059: syntax error : ')'
    soit tu a ouver une parantese mais tu ne las pas ferme, soit il te manque une "," entre deux parametres, l'ors de l'appel d'une fonction.

    error C2143: syntax error : missing ';' before 'constant'
    error C2143: syntax error : missing ';' before '{'
    il te manque ";" a la fin d'une declaration ou d'unne appel de fonction.

    error C2447: '{' : missing function header (old-style formal list?)
    ordinairement un ";" de trop a la fin de l'entete d'une fonction

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