La expresión debe ser un valor L modificable

1 minuto de lectura

avatar de usuario
misterios

Tengo aquí char text[60];

Entonces lo hago en un if:

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

y siempre decía expresión debe ser un valor L modificable.

avatar de usuario
MByD

lvalue significa “valor izquierdo”; debe ser asignable. No puede cambiar el valor de text ya que es una matriz, no un puntero.

Declararlo como char pointer (en este caso es mejor declararlo como const char*):

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

O usa strcpy:

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

¿Ha sido útil esta solución?