• Register
Welcome to Kodlogs, programming questions and answer website.
+1 vote
expression must be a modifiable lvalue
by (1.6k points)  
reshown by

1 Answer

0 votes
Best answer

expression must be a modifiable lvalue

error #137:expression must be a modifiable lvalue 

A "lvalue" is something that shows up on the left half of an administrator. On the off chance that the administrator is =, at that point it's attempting to appoint the incentive on the privilege to some place in memory named by the thing on the left, so the thing on the left needs to indicate something with a spot in memory . 

For instance in the accompanying articulation, the variable Value is the lvalue all things considered on the left hand side of the announcement and is having its worth adjusted to be 24 

Worth = 24; 

This mistake would be produced for the accompanying model as the if restrictive contains a task which endeavors to allocate the Value variable to the strict 24. Since 24 isn't a lvalue, the blunder is produced. 

#include "mbed.h" 

int principle() 

int Value = 24; 

on the off chance that (24 = Value)/*** This line will create the blunder. 

printf("Value is equivalent to 24.\n"); 

Additionally You may experience the accompanying message in the event that you move code to another form of the IAR C/C++ Compiler: 

Error[Pe137]: articulation must be a modifiable lvalue 

This message happens in light of the fact that a cast does not deliver a lvalue 

void f (void * ptr) 

*(long *)ptr = 0x11223344L; 

Step by step instructions to dispose of the blunder message: 

The most ideal way is presumably to revamp the sorts with the goal that the cast don't show up in any case, if conceivable. 

An option is to utilize an impermanent variable of the ideal kind 

Articulation must be a modifiable lvalue. C++ 

a, b, c, d, and e should be on the left half of the essential task administrators in the main picture. So: 

a = value_1 + value_6; 

b = value_2 - value_6; 

the issue here is that you are allocating to an articulation. 'lvalue' signifies "left worth", instead of 'rvalue', "right worth". 'value_1 + value_6' is an articulation that assesses as a 'rvalue'. 

You are basically saying '1 + 2 = a', which is distorted C (and C++). 

Maybe you intended to switch the left and right sides of '='?

by (9.8k points)