When you have a pointer defined like so
char *ptr = "hello world";
It creates a read only character pointer. If you require a char array that's writable then use.
char ptr[] = "hello world";
gerard4143
Nearly a Posting Maven
2,295 posts since Jan 2008
Reputation Points: 512
Solved Threads: 397
Skill Endorsements: 0
This is one of those things that the standards allow implementations to "do their own thing" on. A string literal may (or may not) be in read-only memory as a constant. So, gerard4143 is absolutely correct if you want to modify the contents of the string in a platform-neutral manner. Neither gcc nor Turbo are breaking the rules. It's just that the rules are flexible in such cases. Caveat Programmer! :-)
rubberman
Posting Maven
2,571 posts since Mar 2010
Reputation Points: 365
Solved Threads: 305
Skill Endorsements: 51
thanku for ur information. I know it is stored in read only memory and i also know that we can't alter a value but how it worked in Turbo C thats my question.
Why it worked in Turbo C, read Rubberman's post.
gerard4143
Nearly a Posting Maven
2,295 posts since Jan 2008
Reputation Points: 512
Solved Threads: 397
Skill Endorsements: 0
if we try to modify the content the result is undefined when i worked with gcc in unix.
Correction: the result is always undefined, regardless of compiler. Whether it "works" or not depends on how the compiler implements string literals and enforces modification. Even if it "works", you could still be creating a subtle error down the line.
The lesson to be learned is don't rely on undefined behavior.
Narue
Bad Cop
15,460 posts since Sep 2004
Reputation Points: 6,483
Solved Threads: 1,407
Skill Endorsements: 53
I am not familiar this topic of C language but I have backgrounds on some basic from the language. I hope you can help me with this topic.
basic math test
What is this?
gerard4143
Nearly a Posting Maven
2,295 posts since Jan 2008
Reputation Points: 512
Solved Threads: 397
Skill Endorsements: 0
What is this?
Trolling I think.
rubberman
Posting Maven
2,571 posts since Mar 2010
Reputation Points: 365
Solved Threads: 305
Skill Endorsements: 51