Possible Duplicate:
Change string literal in C through pointer?
Here is a code sample
void main()  
{
    char *i="prady";  printf("%c ",++*i); 
}
Can anyone tell me why this code is giving a segmentation fault in gcc when I guess it should give 'q'. When I am using only *i++ it giving me the result but incase of pre-increment only it's giving me a segmentation fault.
Also tell me why void main is not a proper way to write main() function.
 
     
     
     
    