Question bete sur le if

Signaler
Messages postés
57
Date d'inscription
mardi 11 mars 2003
Statut
Membre
Dernière intervention
24 avril 2013
-
Messages postés
57
Date d'inscription
mardi 11 mars 2003
Statut
Membre
Dernière intervention
24 avril 2013
-
Hello tout le monde,

bon j'ai une question un peu bête sur le if, quelqu'un pourrait m'aider à comprendre l'instruction suivante :

if (_v) _v[0] = nel>0 ? new T[nel] : NULL;

Ma traduction à la 'C' est la suivante :

if (_v)
{
_v[0] = nel;
if nel > 0
_v = new T[nel];
else
_v = NULL;
}

A priori, j'ai faux puisque la première instruction compile alors que ma traduction plante lamentablement :(
Si quelqu'un peut m'éclairer..

Merci !!!
Peupeu

4 réponses

Messages postés
276
Date d'inscription
lundi 8 septembre 2008
Statut
Membre
Dernière intervention
15 avril 2013
2
Bonjour,

Tu n'as pas compris l'affectation conditionnelle. Ta traduction devrait être :

if (_v)
{
if nel > 0
_v[0] = new T[nel];
else
_v[0] = NULL;
}
Messages postés
57
Date d'inscription
mardi 11 mars 2003
Statut
Membre
Dernière intervention
24 avril 2013

mmm, ok j'ai compris...

Merci !!!
Messages postés
14884
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
30 novembre 2020
93
Le ":" est l'opérateur ternaire. Il se "lit" comme suit:
condition ? code_si_vrai : code_si_faux;


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
57
Date d'inscription
mardi 11 mars 2003
Statut
Membre
Dernière intervention
24 avril 2013

Thx