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


Groups > comp.lang.c > #397449

Re: pedantic gcc and const 2D arrays

From Michael S <already5chosen@yahoo.com>
Newsgroups comp.lang.c
Subject Re: pedantic gcc and const 2D arrays
Date 2026-04-09 14:06 +0300
Organization A noiseless patient Spider
Message-ID <20260409140602.00007b72@yahoo.com> (permalink)
References <20260409012107.00006dc5@yahoo.com> <10r76oj$1vci$1@dont-email.me> <10r7s3h$7jht$2@dont-email.me>

Show all headers | View raw


On Thu, 9 Apr 2026 02:38:56 -0700
"Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> wrote:

> On 4/8/2026 8:34 PM, Andrey Tarasevich wrote:
> > On Wed 4/8/2026 3:21 PM, Michael S wrote:  
> >>
> >> What does it mean ?
> >>  
> > 
> > I already mentioned this issue here not so long ago.
> > 
> > Again, an old puzzle about C const-correctness rules goes as
> > follows:
> > 
> >    Is the following initialization
> > 
> >      T t;
> >      const T *pt = &t;
> > 
> >    valid for all complete object types `T`?
> > 
> > And the answer is "no". The above initialization is not valid if
> > `T` is an array type. E.g. given
> > 
> >    typedef int T[10];
> > 
> > the above initialization contains a constraint violation. Your
> > original example with 2D array is actually exactly the same thing,
> > once you take into account function argument type adjustment.
> > 
> > This strange behavior is prescribed by
> > 
> >    6.7.3 Type qualifiers
> >    9 If the specification of an array type includes any type
> > qualifiers, the element type is so qualified, not the array type.
> > 
> > (quoted from C11)
> > 
> > So, the fact that the `const` qualifier applied to array type
> > "falls through" to individual array elements is what prevents this 
> > initialization from working. There's simply no provision in other
> > rules of the language (re: assignment constraints) that would
> > permit initialization of "pointer to an array of non-const
> > elements" with a "pointer to an array of const elements".
> > 
> > C23 changed the above to the following:
> > 
> >    6.7.4 Type qualifiers
> >    6.7.4.1 General
> >    10 If the specification of an array type includes any type 
> > qualifiers, both the array and the element type are so-qualified.
> > 
> > I.e. now const-qualification applies not only to the elements, but
> > also to the entire array type as well. With this change in place
> > the above initialization becomes valid. It now falls under the
> > "usual" const- correctness rules. In C23 arrays are no longer
> > special in such contexts. 
> 
> self pointers for an api type const* const ptr? ;^)


Are you able to decipher your own posts 1 hour later?


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


Thread

pedantic gcc and const 2D arrays Michael S <already5chosen@yahoo.com> - 2026-04-09 01:21 +0300
  Re: pedantic gcc and const 2D arrays Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-04-08 15:57 -0700
    Re: pedantic gcc and const 2D arrays Michael S <already5chosen@yahoo.com> - 2026-04-09 03:09 +0300
      Re: pedantic gcc and const 2D arrays 🇵🇱Jacek Marcin Jaworski🇵🇱 <jmj@energokod.gda.pl> - 2026-04-09 02:33 +0200
      Re: pedantic gcc and const 2D arrays Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-04-08 21:42 -0700
  Re: pedantic gcc and const 2D arrays Andrey Tarasevich <noone@noone.net> - 2026-04-08 20:34 -0700
    Re: pedantic gcc and const 2D arrays Michael S <already5chosen@yahoo.com> - 2026-04-09 11:09 +0300
    Re: pedantic gcc and const 2D arrays "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-04-09 02:38 -0700
      Re: pedantic gcc and const 2D arrays Michael S <already5chosen@yahoo.com> - 2026-04-09 14:06 +0300
        Re: pedantic gcc and const 2D arrays "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-04-09 13:09 -0700
          Re: pedantic gcc and const 2D arrays Andrey Tarasevich <noone@noone.net> - 2026-04-12 11:30 -0700
            Re: pedantic gcc and const 2D arrays Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-04-13 05:40 -0700
              Re: pedantic gcc and const 2D arrays Andrey Tarasevich <noone@noone.net> - 2026-04-26 13:45 -0700
                Re: pedantic gcc and const 2D arrays Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-04-27 07:27 -0700

csiph-web