I went through these two links and found that this behaviour is undefined , but the only issue which I have is that in one sense we say that since local variables live on stack , hence they cannot be located on read only memory region but if this is so then if I try to alter the value of the constant directly through assignment then why does it show error if it is not located in the read only memory region :
#include
#include int main() { const int a=12; int *ptr ; ptr=&a; *ptr=8; // no error a=45; // error printf("\n %d", a); return 0; }
http://stackoverflow.com/questions/3801557/can-we-change-the-value-of-a-constant-through-pointers