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 :

double[] et accolade


Sujet :

C++

  1. #1
    Invité
    Invité(e)
    Par défaut double[] et accolade
    Bonjour,

    Une question (bête) me parcourt l'esprit.

    Pourquoi on ne peut pas redéfinir un tableau de double avec les accolades une fois qu'il a été initialisé ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    double point[3]={0., 0. ,0.};
    point={1. ,1. ,1.};//error à la compile
    Je serais intéressé, par curiosité, d'en connaitre la raison.

    Merci par avance

  2. #2
    Membre chevronné Avatar de seeme
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    430
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 430
    Par défaut
    Je ne pense pas dire de bêtise en disant que

    double point[3]={0., 0. ,0.};
    point={1. ,1. ,1.};//error à la compile


    quand tu utilises point[3] (à la déclaration+initialisation), il s'agit bien d'un tableau de double (ce n'est possible qu'à la déclaration).

    par contre, si on prend la ligne
    point représente un pointeur sur double (un double*). Il n'est pas possible de stocker un tuple (je ne connais pas le terme technique exacte de l'écriture {1., 1., 1.}) dans un pointeur (void*)

  3. #3
    Membre Expert Avatar de Astraya
    Homme Profil pro
    Consommateur de café
    Inscrit en
    Mai 2007
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Consommateur de café
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 048
    Par défaut
    C'est tout simplement car l'utilisation de liste d'initialisation n'est permise que à la déclaration en C++ mais pas en C

    J'ai cru voir quelque part que ça serais possible avec C++0x mais j'ai pas vraiment de certitude la dessus

    Edit: Et encore en C je ne suis pas sur

  4. #4
    Invité
    Invité(e)
    Par défaut
    Ok tout simplement.
    Merci

  5. #5
    Membre émérite
    Inscrit en
    Juillet 2005
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 512
    Par défaut
    Edit: Et encore en C je ne suis pas sur
    En C ça n'est pas permis non plus.

  6. #6
    Membre Expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Par défaut
    En C++0x cette syntaxue sera généralisé à n'importe quel type, voir Initializer List.

    Pour une array je ne suis pas sur que ce soit pourtant possible de faire une assignation tel que proposé dans le premier message, mais pour un objet ça me parait possible (a vérifier quand on aura des compilo rodés pour les nouvelles features...)

  7. #7
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Par défaut
    @Klaim: Pour les tableau ca marche avec GCC. Et je pense que c'est correct en C++1x (mais 'jarrive pas à trouver les passages du draft qui vont dans ce sens : utilisation de la list d'initialisation pour une affectation).

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 19/03/2008, 10h50
  2. division de "double" par "0"
    Par ickis dans le forum C
    Réponses: 14
    Dernier message: 31/08/2003, 19h09
  3. abs pour un long double
    Par barthelv dans le forum C
    Réponses: 2
    Dernier message: 23/07/2003, 16h16
  4. String -> long double (_strlold ?)
    Par haypo dans le forum C
    Réponses: 7
    Dernier message: 25/07/2002, 20h22
  5. Réponses: 3
    Dernier message: 12/06/2002, 21h15

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