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


Groups > comp.lang.c > #149953

Re: Offsetof with array elements

From Manfred <noname@add.invalid>
Newsgroups comp.lang.c
Subject Re: Offsetof with array elements
Date 2020-02-11 19:24 +0100
Organization Aioe.org NNTP Server
Message-ID <r1urgn$856$1@gioia.aioe.org> (permalink)
References <r1udrq$hoe$1@dont-email.me> <r1ug0k$fvk$1@gioia.aioe.org> <0150dd64-4217-49bc-88d0-e8f8925a9dd2@googlegroups.com> <r1up93$p7n$1@dont-email.me>

Show all headers | View raw


On 2/11/2020 6:46 PM, David Brown wrote:
> On 11/02/2020 17:32, James Kuyper wrote:
>> "The array-subscript [ ] operator ... may be used in the creation of 
>> an address constant, but the value of an object may not be accessed by 
>> the use of [that] operator." (6,6p9).
>>
> 
> Right.  So since the expression "offsetof(struct S, a[i])" has to access 
> the object "i" in order to calculate the address (or the offset, in this 
> case), it is disallowed?
> 

It sound to me like this part says the address constant creation /is/ 
allowed, since the object is not accessed, i.e. its address is not 
dereferenced. (This is obvious in the common implementation of offsetof 
that places S at address 0).

But the problem still holds for the other part of the specification of 
offsetof, the one pointed out by Guillaume, which is my main doubt as well:

Guillaume wrote:
> the standard defines offsetof() with its second parameter being a struct member designator. a[i] is not, unless I'm mistaken, a member designator, but an expression derived from one. Thus you'd be using offsetof() with (IMO) an invalid parameter

If you look at 7.19p3, the specification of offsetof(type, 
member-designator) has requirements for both /type/ and /member-designator/

The requirement for /member-designator/ uses the wording of the 
Guillaume quote above, the requirement for /type/ refers to the creation 
of an address constant, which is what James' comment is about.

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


Thread

Offsetof with array elements David Brown <david.brown@hesbynett.no> - 2020-02-11 15:31 +0100
  Re: Offsetof with array elements Guillaume <message@bottle.org> - 2020-02-11 16:08 +0100
    Re: Offsetof with array elements James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-02-11 08:32 -0800
      Re: Offsetof with array elements David Brown <david.brown@hesbynett.no> - 2020-02-11 18:46 +0100
        Re: Offsetof with array elements Manfred <noname@add.invalid> - 2020-02-11 19:24 +0100
          Re: Offsetof with array elements Manfred <noname@add.invalid> - 2020-02-11 19:36 +0100
          Re: Offsetof with array elements James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-02-11 22:50 -0500
            Re: Offsetof with array elements Manfred <noname@add.invalid> - 2020-02-12 13:53 +0100
            Re: Offsetof with array elements Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-02-18 01:43 -0800
    Re: Offsetof with array elements Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-02-18 01:39 -0800
  Re: Offsetof with array elements Bart <bc@freeuk.com> - 2020-02-11 16:56 +0000
    Re: Offsetof with array elements David Brown <david.brown@hesbynett.no> - 2020-02-11 18:49 +0100
  Re: Offsetof with array elements Bonita Montero <Bonita.Montero@gmail.com> - 2020-02-11 21:00 +0100
    Re: Offsetof with array elements Bart <bc@freeuk.com> - 2020-02-11 20:13 +0000
      Re: Offsetof with array elements Bonita Montero <Bonita.Montero@gmail.com> - 2020-02-11 21:24 +0100
        Re: Offsetof with array elements Bart <bc@freeuk.com> - 2020-02-11 20:33 +0000
          Re: Offsetof with array elements Bonita Montero <Bonita.Montero@gmail.com> - 2020-02-11 21:39 +0100
            Re: Offsetof with array elements Bart <bc@freeuk.com> - 2020-02-11 20:48 +0000
    Re: Offsetof with array elements David Brown <david.brown@hesbynett.no> - 2020-02-12 10:56 +0100
      Re: Offsetof with array elements Bonita Montero <Bonita.Montero@gmail.com> - 2020-02-12 14:07 +0100
        Re: Offsetof with array elements David Brown <david.brown@hesbynett.no> - 2020-02-12 15:24 +0100
    Re: Offsetof with array elements Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-02-12 10:39 +0000
      Re: Offsetof with array elements Bonita Montero <Bonita.Montero@gmail.com> - 2020-02-12 14:08 +0100
        Re: Offsetof with array elements James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-02-12 05:29 -0800
          Re: Offsetof with array elements James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-02-12 11:45 -0800
        Re: Offsetof with array elements Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-02-12 17:50 +0000
      Re: Offsetof with array elements Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-02-16 02:41 -0800
        Re: Offsetof with array elements Ben Bacarisse <ben.usenet@bsb.me.uk> - 2020-02-16 11:18 +0000
    Re: Offsetof with array elements already5chosen@yahoo.com - 2020-02-13 02:42 -0800
      Re: Offsetof with array elements James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-02-14 00:20 -0500
        Re: Offsetof with array elements David Brown <david.brown@hesbynett.no> - 2020-02-14 08:24 +0100
          Re: Offsetof with array elements already5chosen@yahoo.com - 2020-02-14 03:59 -0800
            Re: Offsetof with array elements David Brown <david.brown@hesbynett.no> - 2020-02-14 15:25 +0100
              Re: Offsetof with array elements already5chosen@yahoo.com - 2020-02-16 03:15 -0800
                Re: Offsetof with array elements David Brown <david.brown@hesbynett.no> - 2020-02-16 14:09 +0100
                Re: Offsetof with array elements already5chosen@yahoo.com - 2020-02-16 06:36 -0800
          Re: Offsetof with array elements James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-02-15 08:18 -0500
            Re: Offsetof with array elements David Brown <david.brown@hesbynett.no> - 2020-02-15 15:49 +0100
  Re: Offsetof with array elements fir <profesor.fir@gmail.com> - 2020-02-12 04:40 -0800
  Re: Offsetof with array elements "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2020-02-16 16:03 -0800

csiph-web