web-dev-qa-db-fra.com

L'expression doit être une valeur L modifiable

J'ai ici char text[60];

Ensuite, je fais dans un if:

if(number == 2)
  text = "awesome";
else
  text = "you fail";

et il a toujours dit l'expression doit être une valeur L modifiable.

28
Mysterigs

Vous ne pouvez pas modifier la valeur de text car il s'agit d'un tableau, pas d'un pointeur.

Soit le déclarer comme pointeur char (dans ce cas, il vaut mieux le déclarer comme const char*):

const char *text;
if(number == 2) 
    text = "awesome"; 
else 
    text = "you fail";

Ou utilisez strcpy:

char text[60];
if(number == 2) 
    strcpy(text, "awesome"); 
else 
    strcpy(text, "you fail");
36
MByD