For example, if I have a void pointer *p
If I need to convert it into a pointer which point to a array or struct first and then increase.
When I coded like this:

((struct test_st *)p)++; OR (struct test_st *)p += 1;

there is an error when the code was compiled as:

error: lvalue required as increment operand
error: lvalue required as left operand of assignment

Couldn't I do it as above? Why?