Robert Ryan wrote:
> #include<stdio.h>
> #include<string.h>
> int main()
> {
>         char *s1="hello1" ;
>         char *s2="hello2" ;
>         {
>         strcpy(s1, s2);
>         printf("%s\n" , s1);
>         }
>         }
> 
> [EMAIL PROTECTED] ~/CSSp08]$ ./a.out
> Segmentation fault (core dumped)

That is because the memory of s1 and s2 are _read only_.  The pages are 
flagged by the OS as read-only.  Attempting to write to a read only page 
results in an exception being raised.  In other words, accept that the 
above is something you should NOT do and live with it.

(There are ways to force pages of RAM to be read-write under all major 
OSes, but such is outside the scope of this group, the methods are 
non-ANSI Standard, and involve advanced OS topics where you only use 
such methods when you really, truly know what you are doing not just 
with C/C++ but with the OS itself).

-- 
Thomas Hruska
CubicleSoft President
Ph: 517-803-4197

*NEW* MyTaskFocus 1.1
Get on task.  Stay on task.

http://www.CubicleSoft.com/MyTaskFocus/

Reply via email to