Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #153191

Re: does char *str="abcd"; alloc addressable memory?

From John Forkosh <forkosh@panix.com>
Newsgroups comp.lang.c
Subject Re: does char *str="abcd"; alloc addressable memory?
Date 2020-07-11 03:09 +0000
Organization PANIX Public Access Internet and UNIX, NYC
Message-ID <rebagr$sdm$1@reader1.panix.com> (permalink)
References (5 earlier) <6HCNG.37756$bQ4.31924@fx04.iad> <86fta0fw7j.fsf@linuxsc.com> <87o8oo8s31.fsf@nosuchdomain.example.com> <re87g8$1c$1@reader1.panix.com> <re9udd$sq3$1@gioia.aioe.org>

Show all headers | View raw


Manfred <noname@add.invalid> wrote:
> On 7/10/2020 12:59 AM, John Forkosh wrote:
>> Keith Thompson <Keith.S.Thompson+u@gmail.com> wrote:
>>> Tim Rentsch <tr.17687@z991.linuxsc.com> writes:
>>> [...]
>>>> Much more recently than that, gcc had an option -fwriteable-strings.
>>>> That option has since been removed, but it was still available in
>>>> the last ten years or so.
>>>
>>> The "-fwritable-strings" option (note spelling), was removed in 2004.
>>> The version string for the commit that removed it was
>>> "3.5.0 20040223 (experimental)".
>> 
>> Just curious at this point (since you and TimR and BenB already
>> elegantly solved my actual problem upthread), but why would the
>> behavior be removed at all? Sounds like they were trying to
>> protect the programmer from his own stupidity (or her own stupidity).
>> But that wouldn't be the underlying C philosophy, at least not
>> as I've understood it, as a "portable assembler". You're supposed
>> to know what you're doing, and why, and its consequences/side-effects/
>> whatever. Forget strings,... old assembler programs could change
>> their own program memory, i.e., change the instructions being
>> executed, during execution. But now I'm not even allowed to change
>> a string literal. Well, I can live with that, and work around it
>> exactly as you've suggested, but I can't seem to fathom the
>> legitimacy of the reasoning behind the decision to force me
>> to do it. At least not in C (not as I've come to know and like it).
>> 
> 
> I don't think this was a matter of protecting the programmer, at least 
> not as a primary purpose.
> I see this more as improving the self-consistency of the language.
> A 'literal' value is strictly read only, to the point of being even 
> hardcoded into the generated instructions; see e.g. numeric literals 
> that don't even have an address, forget modifying them.

I'm not sure about "numeric literals that don't even have an address".
I seem to recall, from long ago, that it was possible to accidentally
(or on purpose, though I don't recall ever seeing/hearing of any good
algorithmic reason to) change the value of numeric constants so that
afterwards, e.g., i=1;i+=1;(not sure about i++) results in i==3.
So, I'd presume, the compiler was storing the collection of constants
it found in the program in memory, rather than compiling into an
assembly-like add-immediate (or other immediate) instruction.
Am I recalling that kind of thing correctly (you guys clearly know
about this kind of stuff in way more accurate detail than I do)?

> The fact that implementations store a string literal in a bytearray 
> somewhere in memory is orthogonal to their semantics as a literal value.
> It is because if this that implementations have been free to store 
> multiple identical string literals in a single location, resulting in 
> the behavior reported by Jacob (if you change one, all of them are 
> changed) that is a clear logical inconsistency if you look at them as data.

-- 
John Forkosh  ( mailto:  j@f.com  where j=john and f=forkosh )

Back to comp.lang.c | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

does char *str="abcd"; alloc addressable memory? John Forkosh <forkosh@panix.com> - 2020-07-06 11:24 +0000
  Re: does char *str="abcd"; alloc addressable memory? jacobnavia <jacob@jacob.remcomp.fr> - 2020-07-06 13:29 +0200
    Mark Twain had something to say about this... (Was: does char *str="abcd"; alloc addressable memory?) gazelle@shell.xmission.com (Kenny McCormack) - 2020-07-06 12:48 +0000
      Re: Mark Twain had something to say about this... (Was: does char *str="abcd"; alloc addressable memory?) BGB <cr88192@gmail.com> - 2020-07-06 11:55 -0500
        Re: Mark Twain had something to say about this... (Was: does char *str="abcd"; alloc addressable memory?) Vir Campestris <vir.campestris@invalid.invalid> - 2020-07-06 21:21 +0100
          Re: Mark Twain had something to say about this... John Forkosh <forkosh@panix.com> - 2020-07-07 03:21 +0000
          Re: Mark Twain had something to say about this... (Was: does char *str="abcd"; alloc addressable memory?) mark.bluemel@gmail.com - 2020-07-09 06:30 -0700
      Re: Mark Twain had something to say about this... (Was: does char *str="abcd"; alloc addressable memory?) Richard Damon <Richard@Damon-Family.org> - 2020-07-06 22:16 -0400
        Re: Mark Twain had something to say about this... Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-07-06 23:22 -0700
      Re: Mark Twain had something to say about this... John Forkosh <forkosh@panix.com> - 2020-07-07 02:46 +0000
      Re: Mark Twain had something to say about this... (Was: does char *str="abcd"; alloc addressable memory?) jacobnavia <jacob@jacob.remcomp.fr> - 2020-07-07 09:29 +0200
    Re: does char *str="abcd"; alloc addressable memory? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-07-06 11:25 -0700
      Re: does char *str="abcd"; alloc addressable memory? John Forkosh <forkosh@panix.com> - 2020-07-07 03:05 +0000
        Re: does char *str="abcd"; alloc addressable memory? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-07-06 23:25 -0700
          Re: does char *str="abcd"; alloc addressable memory? John Forkosh <forkosh@panix.com> - 2020-07-07 06:47 +0000
            Re: does char *str="abcd"; alloc addressable memory? John Forkosh <forkosh@panix.com> - 2020-07-07 07:00 +0000
              Re: does char *str="abcd"; alloc addressable memory? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-07-07 01:24 -0700
              Re: does char *str="abcd"; alloc addressable memory? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-07-07 20:47 +0100
                Re: does char *str="abcd"; alloc addressable memory? John Forkosh <forkosh@panix.com> - 2020-07-08 03:43 +0000
        Re: does char *str="abcd"; alloc addressable memory? David Brown <david.brown@hesbynett.no> - 2020-07-07 09:35 +0200
          Re: does char *str="abcd"; alloc addressable memory? John Forkosh <forkosh@panix.com> - 2020-07-07 07:54 +0000
            Re: does char *str="abcd"; alloc addressable memory? David Brown <david.brown@hesbynett.no> - 2020-07-07 11:27 +0200
          Re: does char *str="abcd"; alloc addressable memory? Richard Damon <Richard@Damon-Family.org> - 2020-07-09 06:53 -0400
            Re: does char *str="abcd"; alloc addressable memory? David Brown <david.brown@hesbynett.no> - 2020-07-09 14:48 +0200
              Re: does char *str="abcd"; alloc addressable memory? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-07-09 17:01 +0100
                Re: does char *str="abcd"; alloc addressable memory? David Brown <david.brown@hesbynett.no> - 2020-07-09 22:10 +0200
                Re: does char *str="abcd"; alloc addressable memory? scott@slp53.sl.home (Scott Lurndal) - 2020-07-09 20:23 +0000
                Re: does char *str="abcd"; alloc addressable memory? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-07-09 23:56 +0100
                Re: does char *str="abcd"; alloc addressable memory? antispam@math.uni.wroc.pl - 2020-07-10 03:25 +0000
                Re: does char *str="abcd"; alloc addressable memory? Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2020-07-10 11:56 -0400
                Re: does char *str="abcd"; alloc addressable memory? richard@cogsci.ed.ac.uk (Richard Tobin) - 2020-07-10 12:31 +0000
                Re: does char *str="abcd"; alloc addressable memory? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-07-09 13:35 -0700
                Re: does char *str="abcd"; alloc addressable memory? scott@slp53.sl.home (Scott Lurndal) - 2020-07-09 22:17 +0000
                Re: does char *str="abcd"; alloc addressable memory? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-07-09 23:50 +0100
            Re: does char *str="abcd"; alloc addressable memory? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-07-09 16:52 +0100
            Re: does char *str="abcd"; alloc addressable memory? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-07-09 10:13 -0700
              Re: does char *str="abcd"; alloc addressable memory? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-07-09 11:24 -0700
                Re: does char *str="abcd"; alloc addressable memory? John Forkosh <forkosh@panix.com> - 2020-07-09 22:59 +0000
                Re: does char *str="abcd"; alloc addressable memory? Manfred <noname@add.invalid> - 2020-07-10 16:36 +0200
                Re: does char *str="abcd"; alloc addressable memory? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-07-10 15:54 +0100
                Re: does char *str="abcd"; alloc addressable memory? Manfred <noname@add.invalid> - 2020-07-10 18:33 +0200
                Re: does char *str="abcd"; alloc addressable memory? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-07-10 22:50 +0100
                Re: does char *str="abcd"; alloc addressable memory? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-07-11 16:21 +0100
                Re: does char *str="abcd"; alloc addressable memory? Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2020-07-11 08:55 -0700
                Re: does char *str="abcd"; alloc addressable memory? Bart <bc@freeuk.com> - 2020-07-11 17:09 +0100
                Re: does char *str="abcd"; alloc addressable memory? Manfred <noname@add.invalid> - 2020-07-11 18:34 +0200
                Re: does char *str="abcd"; alloc addressable memory? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-07-10 13:17 -0700
                Re: does char *str="abcd"; alloc addressable memory? Manfred <noname@add.invalid> - 2020-07-11 02:00 +0200
                Re: does char *str="abcd"; alloc addressable memory? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-07-10 17:46 -0700
                Re: does char *str="abcd"; alloc addressable memory? John Forkosh <forkosh@panix.com> - 2020-07-11 03:09 +0000
                Re: does char *str="abcd"; alloc addressable memory? Manfred <noname@add.invalid> - 2020-07-11 18:43 +0200
                Re: does char *str="abcd"; alloc addressable memory? James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-07-11 15:09 -0400
                Re: does char *str="abcd"; alloc addressable memory? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-07-11 13:39 -0700
                Re: does char *str="abcd"; alloc addressable memory? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-07-11 15:50 -0700
                Re: does char *str="abcd"; alloc addressable memory? John Forkosh <forkosh@panix.com> - 2020-07-12 01:06 +0000
                Re: does char *str="abcd"; alloc addressable memory? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-07-10 08:54 -0700
                Re: does char *str="abcd"; alloc addressable memory? John Forkosh <forkosh@panix.com> - 2020-07-11 03:26 +0000
                Re: does char *str="abcd"; alloc addressable memory? Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2020-07-11 03:56 -0700
                Re: does char *str="abcd"; alloc addressable memory? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-07-10 08:46 -0700
                Re: does char *str="abcd"; alloc addressable memory? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-07-10 13:38 -0700
                Re: does char *str="abcd"; alloc addressable memory? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-07-10 13:54 -0700
        Re: does char *str="abcd"; alloc addressable memory? James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-07-07 08:52 -0400
    Re: does char *str="abcd"; alloc addressable memory? John Forkosh <forkosh@panix.com> - 2020-07-07 02:56 +0000
      Re: does char *str="abcd"; alloc addressable memory? antispam@math.uni.wroc.pl - 2020-07-07 19:08 +0000
        Re: does char *str="abcd"; alloc addressable memory? John Forkosh <forkosh@panix.com> - 2020-07-08 04:07 +0000
          Re: does char *str="abcd"; alloc addressable memory? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-07-07 21:54 -0700
  Re: does char *str="abcd"; alloc addressable memory? Ike Naar <ike@sdf.org> - 2020-07-06 11:56 +0000
  Re: does char *str="abcd"; alloc addressable memory? Bonita Montero <Bonita.Montero@gmail.com> - 2020-07-06 13:57 +0200
    Re: does char *str="abcd"; alloc addressable memory? Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2020-07-06 05:37 -0700
      Re: does char *str="abcd"; alloc addressable memory? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-07-06 19:52 +0100
        Re: does char *str="abcd"; alloc addressable memory? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-07-06 12:20 -0700
      Re: does char *str="abcd"; alloc addressable memory? John Forkosh <forkosh@panix.com> - 2020-07-07 03:32 +0000
        Re: does char *str="abcd"; alloc addressable memory? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-07-07 06:26 -0700
          Re: does char *str="abcd"; alloc addressable memory? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2020-07-07 10:03 -0700
            Re: does char *str="abcd"; alloc addressable memory? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-07-09 10:07 -0700
          Re: does char *str="abcd"; alloc addressable memory? John Forkosh <forkosh@panix.com> - 2020-07-08 03:57 +0000
            Re: does char *str="abcd"; alloc addressable memory? James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-07-08 11:02 -0400
    Re: does char *str="abcd"; alloc addressable memory? James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-07-06 09:43 -0700
      Re: does char *str="abcd"; alloc addressable memory? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-07-06 19:35 +0100
    Re: does char *str="abcd"; alloc addressable memory? Andrey Tarasevich <andreytarasevich@hotmail.com> - 2020-07-06 18:50 -0700
  Re: does char *str="abcd"; alloc addressable memory? James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-07-06 08:35 -0400
    Re: does char *str="abcd"; alloc addressable memory? James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-07-06 11:21 -0400
  Re: does char *str="abcd"; alloc addressable memory? Barry Schwarz <schwarzb@delq.com> - 2020-07-06 09:58 -0700
    Re: does char *str="abcd"; alloc addressable memory? scott@slp53.sl.home (Scott Lurndal) - 2020-07-06 23:07 +0000
      Re: does char *str="abcd"; alloc addressable memory? Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2020-07-06 20:03 -0400
        Re: does char *str="abcd"; alloc addressable memory? scott@slp53.sl.home (Scott Lurndal) - 2020-07-07 14:36 +0000
          Re: does char *str="abcd"; alloc addressable memory? Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2020-07-07 11:58 -0400

csiph-web