@raina
Ошибка "lvalue required as unary '&' operand" означает, что оператор "&" применен к значению, которое не является "lvalue". "lvalue" (от англ. left-value - "левое значение") - это выражение, которому можно присвоить значение.
Оператор "&" используется для получения адреса переменной в памяти. Он требует, чтобы его операнд был "lvalue", то есть имел адрес в памяти. Если операнд не является "lvalue", компилятор выдаст ошибку.
Возможными причинами ошибки могут быть: