Почему результат этого броска не lvalue?

Мне нужен совет с этим странным поведением - давайте иметь этот код:

int ** p;

Это без проблем компилируется:

p++;

Но это:

((int**)p)++;

Дает мне это сообщение об ошибке:.“error: lvalue required as increment operand”

Я кастуюp к типу он уже есть, ничего не меняется, так в чем проблема? Это упрощенная версия проблемы, с которой я столкнулся, когда пытался скомпилировать одну старую версиюgdb, Так что я полагаю, что это сработало и что-то изменилось. Есть идеи, что не так со вторым примером?

Ответы на вопрос(4)

Ваш ответ на вопрос