The declaration :
char *p = "gateoverflow" ;
so this suggests that "gateoverflow" is a string constant..And for string constant :
Base address can be changed but content cannot be changed..
And reverse happens for array declaration like :
char p[15] = "Gateoverflow" .Here base address cannot be changed but content can be changed..
Hence the above code results to runtime error..