Quote Originally Posted by Peter_B View Post
You are trying to modify a string literal ("VENICE"). This will cause undefined behaviour.
Isn't he trying to modify the contents of memory whose start address is the start address of the char array a whose contents have been set to VENICE\0? Surely changing p1-- to p2-- is all that is required in this case? This works OK with my c compiler and produces the expected output.