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

Discussion :

Problème d'initialisation de tableau de QChar

  1. #1
    Membre actif
    Homme Profil pro
    http://tuatini-godard.me/
    Inscrit en
    Décembre 2010
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : http://tuatini-godard.me/

    Informations forums :
    Inscription : Décembre 2010
    Messages : 70
    Par défaut Problème d'initialisation de tableau de QChar
    Bonjour,
    Alors voilà ma question est assez simple.
    Avec le code suivant:
    <le début de la fonction commence à la ligne 121 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
    QString NetworkUtil::receiveString(QDataStream &in, qint32 messageSize){
        QChar tempStr[messageSize];
        qint32 messageSizeToUTF8 = messageSize / 2;
     
        in.setByteOrder(QDataStream::LittleEndian);
        qDebug() << "String size = " << messageSize;
     
        for(int i = 0; i < messageSizeToUTF8; i++){
            in >> tempStr[i];
        }
     
        in.setByteOrder(QDataStream::BigEndian);
        //TODO convert big endian to little endian
        return QString::fromUtf8((char *)tempStr);
    }
    J'obtiens:
    NetworkUtil.cpp(122) : error C2057: expression constante attendue
    NetworkUtil.cpp(122) : error C2466: impossible d'allouer un tableau de taille constante 0
    NetworkUtil.cpp(122) : error C2133: 'tempStr'ÿ: taille inconnue

    J'ai essayé de changer:
    qint32 messageSize
    en
    const qint32 messageSize
    Mais sans succès...
    Le plus étrange c'est que sous linux ça se compile parfaitement, mais sous windows ce n'est pas trop le cas comme vous pouvez le voir.
    Quelqu'un aurait une idée de quoi cela peut il provenir?
    Merci d'avance.

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    Bonjour,

    Ce n'est pas une question Qt : http://msdn.microsoft.com/fr-fr/library/eff825eh.aspx

  3. #3
    Membre actif
    Homme Profil pro
    http://tuatini-godard.me/
    Inscrit en
    Décembre 2010
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : http://tuatini-godard.me/

    Informations forums :
    Inscription : Décembre 2010
    Messages : 70
    Par défaut
    Je suis trop fort moi... ça va faire 3 thread que j'ouvre, les 2 derniers ont été déplacés dans le forum QT et ce dernier que je mets dans le forum QT... a pas ça place ici -_-'. Merci cependant pour ton aide mais comme je l'ai dit dans mon message précédent j'ai bien rajouté le qualificatif const dans le prototype et la déclaration de ma fonction mais rien n'a changé...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 40
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    QChar tempStr[messageSize];
    ne compile pas sous Visual studio.
    tu peux faire des tableaux statiques qu'avec des valeurs determinées à la compilation ( en général avec des #define).

    Si tu veux une taille variable utilise plutôt soit QList<QChar> ( qui soit dit en passanr doit ressembler etrangement à un QString ),
    soit un Qchar * tempStr = new Qchar[messageSize];
    (mais n'oublie pas de le deleter...)

  5. #5
    Membre actif
    Homme Profil pro
    http://tuatini-godard.me/
    Inscrit en
    Décembre 2010
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : http://tuatini-godard.me/

    Informations forums :
    Inscription : Décembre 2010
    Messages : 70
    Par défaut
    Merci pour ton aide .
    Je trouve idiot de ne pas pouvoir faire ça =/
    Je crois que je vais migrer vers le bon vieux compilateur GNU.

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/02/2011, 18h09
  2. problème d'initialisation d'un tableau de structure
    Par hamma2 dans le forum Débuter
    Réponses: 1
    Dernier message: 08/03/2010, 19h26
  3. [Tableaux] Problème d'initialisation de tableau ?
    Par Jiraiya42 dans le forum Langage
    Réponses: 7
    Dernier message: 01/07/2007, 11h26
  4. Problème d'initialisation d'un tableau
    Par Premium dans le forum C
    Réponses: 13
    Dernier message: 31/05/2006, 14h48
  5. Problème d'initialisation variable tableau
    Par HeZiX dans le forum Langage
    Réponses: 3
    Dernier message: 08/06/2005, 16h30

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