Question bete sur le if

eupeup Messages postés 57 Date d'inscription mardi 11 mars 2003 Statut Membre Dernière intervention 24 avril 2013 - 15 avril 2013 à 15:09
eupeup Messages postés 57 Date d'inscription mardi 11 mars 2003 Statut Membre Dernière intervention 24 avril 2013 - 15 avril 2013 à 16:44
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

ed73 Messages postés 276 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 avril 2013 2
15 avril 2013 à 15:23
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;
}
eupeup Messages postés 57 Date d'inscription mardi 11 mars 2003 Statut Membre Dernière intervention 24 avril 2013
15 avril 2013 à 15:34
mmm, ok j'ai compris...

Merci !!!
BunoCS Messages postés 15479 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 juin 2024 103
15 avril 2013 à 16:31
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...
eupeup Messages postés 57 Date d'inscription mardi 11 mars 2003 Statut Membre Dernière intervention 24 avril 2013
15 avril 2013 à 16:44
Thx
Rejoignez-nous