in Programming
364 views
0 votes
0 votes

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

in Programming
364 views

1 Answer

0 votes
0 votes

auto variables are in stack and there is no RO section inside stack, But compiler can do constant propagation and a constant variable might not have a memory. This can throw a compile error or unexpected result.

Go through this Link

http://www.geeksforgeeks.org/const-qualifier-in-c/

by

2 Comments

Not a necessity- in fact usually will not be. Because auto variables are in stack and there is no RO section inside stack, But compiler can do constant propagation and a constant variable might not have a memory. This can throw a compile error or unexpected result.
0
0
Thanx for correction sir :)
0
0