svn commit: trunk/busybox/networking
walter harms
wharms at bfs.de
Mon Jan 29 12:27:09 UTC 2007
Denis Vlasenko wrote:
> On Sunday 28 January 2007 19:11, Bernhard Fischer wrote:
>> On Sun, Jan 28, 2007 at 06:59:12PM +0100, Denis Vlasenko wrote:
>>> On Sunday 28 January 2007 18:59, Bernhard Fischer wrote:
>>>> On Sun, Jan 28, 2007 at 06:25:38PM +0100, Denis Vlasenko wrote:
>>>>
>>>>> Then why gcc doesn't warn me when I assign "const char*" to "char*"?
>>>> I don't understand?
>>> Try char *str = "constant";
>> $ cat foo.c
>> void f(void) {
>> char*c="constant";
>> char *str = c;
>> str[0]='\0';
>> }
>
>> $ gcc -c foo.c -Wwrite-strings
>> foo.c: In function 'f':
>> foo.c:2: warning: initialization discards qualifiers from pointer target type
>
> gcc-4.1.1:
>
> # cat t.c
> int main() {
> char *c = "abc";
> c[0] = 'b';
> return 0;
> }
>
> # gcc t.c
>
> # ./a.out
> Segmentation fault
>
this is intended by the c-standards. (i had a lon discussion some time agao)
in short:
char [] always writeable
char * implementation
const never
see: (C - A reference Manual, 5th ed, p 32-33)
hope that helps,
re,
wh
More information about the busybox
mailing list