The place where strict constness is not enforced is with character
array literals. You can say
char* cp = "howdy";
and the compiler will accept it without complaint. This is
technically an error because a character array literal (“howdy” in
this case) is created by the compiler as a constant character array,
and the result of the quoted character array is its starting address in
memory. Modifying any of the characters in the array is a runtime
error, although not all compilers enforce this correctly.
So character array literals are actually constant character arrays. Of
course, the compiler lets you get away with treating them as nonconst
because there’s so much existing C code that relies on this.
However, if you try to change the values in a character array literal,
the behavior is undefined, although it will probably work on many
machines.
If you want to be able to modify the string, put it in an array:
char cp[] = "howdy";
Since compilers often don’t enforce the difference you won’t be
reminded to use this latter form and so the point becomes rather
subtle.

On Thu, Jun 16, 2011 at 12:59 PM, amit kumar <[email protected]>wrote:

> //kk
> //In place of
>
> char *p="hai friends",*p1;
> if i declare as
> char p[]="hai friends";
> char *p1;
> //then ??
>
>
> On Thu, Jun 16, 2011 at 8:16 AM, DIPANKAR DUTTA <
> [email protected]> wrote:
>
>> It's ok..
>>
>> char *p="hai friends"...not correct....
>>
>> bcz you did allocate memory for that string but assiging poiter to the
>> base address.. from where gcc will get the bse address of that string when u
>> r not actually allocate memory for it? thus it generate SIGSEG signal and
>> give invalid memory address...ie. segmentation fault
>> use malloc or use
>> char p[]="..";
>>
>>
>>
>>
>>
>>
>> On Thu, Jun 16, 2011 at 4:49 AM, DK <[email protected]> wrote:
>>
>>> Gives me a SEGFAULT on gcc.
>>> Probably due to undefined behaviour.
>>>
>>> --
>>> DK
>>>
>>> http://twitter.com/divyekapoor
>>> http://www.divye.in
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "Algorithm Geeks" group.
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msg/algogeeks/-/QVAjKMQiWvoJ.
>>>
>>> To post to this group, send email to [email protected].
>>> To unsubscribe from this group, send email to
>>> [email protected].
>>> For more options, visit this group at
>>> http://groups.google.com/group/algogeeks?hl=en.
>>>
>>
>>
>>
>> --
>> Thanks and Regards,
>> ------------------------------
>> *DIPANKAR DUTTA*
>> Visiting Research Scholar
>> Dept of Computing,
>> Macquarie University, Sydney, Australia
>> ph.no-+61 2 98509079 ( Mon-Fri 10:15-7:00) Sydney time
>> email: [email protected]
>>
>>
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "Algorithm Geeks" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> For more options, visit this group at
>> http://groups.google.com/group/algogeeks?hl=en.
>>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Algorithm Geeks" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/algogeeks?hl=en.
>



-- 
Sunny Aggrawal
B-Tech IV year,CSI
Indian Institute Of Technology,Roorkee

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to