Expressie moet een aanpasbare L-waarde zijn

Ik heb hier char text[60];

Dan doe ik in een if:

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

en er stond altijd dat expressie een aanpasbare L-waarde moet zijn.


Antwoord 1, autoriteit 100%

lvaluebetekent “linkerwaarde” — het moet toewijsbaar zijn. U kunt de waarde van textniet wijzigen omdat het een array is en geen pointer.

Declareer het ofwel als char pointer (in dit geval is het beter om het te declareren als const char*):

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

Of gebruik strcpy:

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

Other episodes