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;
}
0
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 !!!
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 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...
0
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
0
Rejoignez-nous