int* pint; pint=(int*)data; ++(*pint);
I really don't understand this style of coding - you've declared a variable, so why not save typing and screen space and initialise it at the same time?
if so, it will not give equivalent result as above one.
I don't understand why you think that.
I think you may be confusing the value of a pointer and the value that it points to.