Почему результат этого броска не lvalue?
Мне нужен совет с этим странным поведением - давайте иметь этот код:
int ** p;
Это без проблем компилируется:
p++;
Но это:
((int**)p)++;
Дает мне это сообщение об ошибке:.“error: lvalue required as increment operand”
Я кастуюp
к типу он уже есть, ничего не меняется, так в чем проблема? Это упрощенная версия проблемы, с которой я столкнулся, когда пытался скомпилировать одну старую версиюgdb
, Так что я полагаю, что это сработало и что-то изменилось. Есть идеи, что не так со вторым примером?