Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #397449
| 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> |
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 | Next — Previous in thread | Next in thread | Find similar
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