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


Groups > comp.lang.c > #73561

Re: Pointers as error values

From Keith Thompson <kst-u@mib.org>
Newsgroups comp.lang.c
Subject Re: Pointers as error values
Date 2015-10-22 08:29 -0700
Organization None to speak of
Message-ID <lnlhaux6oi.fsf@kst-u.example.com> (permalink)
References <bb26d1c2-246b-45cd-8434-583530881c88@googlegroups.com> <lnlhayzw6g.fsf@kst-u.example.com> <n0781l$lg2$1@speranza.aioe.org> <n09sod$e2a$1@speranza.aioe.org>

Show all headers | View raw


glen herrmannsfeldt <gah@ugcs.caltech.edu> writes:
> Morten W. Petersen <morphex@gmail.com> wrote:
>> On 19.10.2015 17:59, Keith Thompson wrote:
>
> (snip)
>
>>> Not 100% portably.  A small non-zero integer converted to a pointer
>>> type is unlikely to match a valid pointer value, but there's no
>>> guarantee.  Even accessing an invalid pointer (without dereferencing
>>> it) can have undefined behavior.
>  
>> Hmm, OK.  That dereferencing wouldn't work was expected, but why would
>> working with an address value not work?
>  
>> What is a real-life example where using 1-7 as pointer return values
>> would not work?
>
> C guarantees that no valid pointer will have the value equal to a null
> pointer.

Emphasis: no *valid* pointer.

> On small systems, or larger systems in small memory model, C has to
> guarantee that no pointer is NULL, so won't ever use the otherwise
> valid pointer (void*)0.  C doesn't guarantee that no pointer is
> equal to (void*)1. 

C doesn't guarantee that `(void*)0 != (void*)1`.  An implementation
could plausibly use a representation equivalent to 0x1 for null
pointers.  (void*)1 could reinterpret the representation of the
operand 1, yielding a null pointer; (void*)0 yields a null pointer
by definition.

> Also, as previously noted, using <, <=, >, >=, might give surprising
> results.

Not just surprising results; the behavior is undefined unless both
operands point into or just past the same object.

-- 
Keith Thompson (The_Other_Keith) kst-u@mib.org  <http://www.ghoti.net/~kst>
Working, but not speaking, for JetHead Development, Inc.
"We must do something.  This is something.  Therefore, we must do this."
    -- Antony Jay and Jonathan Lynn, "Yes Minister"

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


Thread

Pointers as error values "Morten W. Petersen" <morphex@gmail.com> - 2015-10-19 00:53 -0700
  Re: Pointers as error values gazelle@shell.xmission.com (Kenny McCormack) - 2015-10-19 08:26 +0000
    Re: Pointers as error values "Morten W. Petersen" <morphex@gmail.com> - 2015-10-19 02:27 -0700
    Re: Pointers as error values Richard Damon <Richard@Damon-Family.org> - 2015-10-19 23:38 -0400
  Re: Pointers as error values jacobnavia <jacob@jacob.remcomp.fr> - 2015-10-19 10:34 +0200
    Re: Pointers as error values "Morten W. Petersen" <morphex@gmail.com> - 2015-10-19 02:29 -0700
    Re: Pointers as error values mark.bluemel@gmail.com - 2015-10-19 05:53 -0700
  Re: Pointers as error values glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-10-19 10:00 +0000
  Re: Pointers as error values Jorgen Grahn <grahn+nntp@snipabacken.se> - 2015-10-19 14:00 +0000
  Re: Pointers as error values gwowen <gwowen@gmail.com> - 2015-10-19 08:02 -0700
    Re: Pointers as error values James Kuyper <jameskuyper@verizon.net> - 2015-10-19 11:53 -0400
  Re: Pointers as error values Ken Brody <kenbrody@spamcop.net> - 2015-10-19 11:25 -0400
  Re: Pointers as error values supercat@casperkitty.com - 2015-10-19 08:41 -0700
  Re: Pointers as error values Keith Thompson <kst-u@mib.org> - 2015-10-19 08:59 -0700
    Re: Pointers as error values "Morten W. Petersen" <morphex@gmail.com> - 2015-10-21 07:32 +0200
      Re: Pointers as error values Ian Collins <ian-news@hotmail.com> - 2015-10-21 19:17 +1300
        Re: Pointers as error values "Morten W. Petersen" <morphex@gmail.com> - 2015-10-21 08:31 +0200
      Re: Pointers as error values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-21 12:46 +0100
      Re: Pointers as error values Robert Wessel <robertwessel2@yahoo.com> - 2015-10-21 09:35 -0500
        Re: Pointers as error values Ken Brody <kenbrody@spamcop.net> - 2015-10-21 15:24 -0400
          Re: Pointers as error values glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-10-22 05:44 +0000
      Re: Pointers as error values Keith Thompson <kst-u@mib.org> - 2015-10-21 10:41 -0700
        Re: Pointers as error values supercat@casperkitty.com - 2015-10-21 11:28 -0700
      Re: Pointers as error values John Temples <usenet@xargs-spam.com> - 2015-10-21 17:45 +0000
        Re: Pointers as error values James Kuyper <jameskuyper@verizon.net> - 2015-10-21 14:15 -0400
          Re: Pointers as error values "Morten W. Petersen" <morphex@gmail.com> - 2015-10-29 16:59 +0100
            Re: Pointers as error values supercat@casperkitty.com - 2015-10-29 12:35 -0700
              Re: Pointers as error values raltbos@xs4all.nl (Richard Bos) - 2015-10-29 21:45 +0000
                Re: Pointers as error values "Morten W. Petersen" <morphex@gmail.com> - 2015-10-30 06:09 +0100
                Re: Pointers as error values Rosario19 <Ros@invalid.invalid> - 2015-10-30 08:59 +0100
                Re: Pointers as error values Rosario19 <Ros@invalid.invalid> - 2015-10-30 09:07 +0100
                Re: Pointers as error values Rosario19 <Ros@invalid.invalid> - 2015-10-30 09:38 +0100
                Re: Pointers as error values Rosario19 <Ros@invalid.invalid> - 2015-10-30 09:40 +0100
                Re: Pointers as error values Robert Wessel <robertwessel2@yahoo.com> - 2015-10-30 04:56 -0500
                Re: Pointers as error values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-30 11:00 +0000
            Re: Pointers as error values Robert Wessel <robertwessel2@yahoo.com> - 2015-10-29 23:48 -0500
              Re: Pointers as error values "Morten W. Petersen" <morphex@gmail.com> - 2015-10-30 11:05 +0100
                Re: Pointers as error values Richard Damon <Richard@Damon-Family.org> - 2015-10-30 07:45 -0400
                Re: Pointers as error values Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-10-30 05:04 -0700
                Re: Pointers as error values "Morten W. Petersen" <morphex@gmail.com> - 2015-10-30 16:09 +0100
                Re: Pointers as error values Keith Thompson <kst-u@mib.org> - 2015-10-30 11:16 -0700
                Re: Pointers as error values glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-10-30 20:58 +0000
                Re: Pointers as error values Eric Sosman <esosman@comcast-dot-net.invalid> - 2015-10-30 17:12 -0400
                Re: Pointers as error values supercat@casperkitty.com - 2015-10-30 14:54 -0700
                Re: Pointers as error values Robert Wessel <robertwessel2@yahoo.com> - 2015-10-30 18:48 -0500
                Re: Pointers as error values glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-11-01 04:00 +0000
                Re: Pointers as error values Robert Wessel <robertwessel2@yahoo.com> - 2015-11-01 01:24 -0500
                Re: Pointers as error values "Morten W. Petersen" <morphex@gmail.com> - 2015-10-31 20:35 +0100
                Re: Pointers as error values supercat@casperkitty.com - 2015-10-31 13:33 -0700
                Re: Pointers as error values Richard Damon <Richard@Damon-Family.org> - 2015-10-30 22:19 -0400
                Re: Pointers as error values supercat@casperkitty.com - 2015-10-30 08:22 -0700
                Re: Pointers as error values Geoff <geoff@invalid.invalid> - 2015-10-30 13:11 -0700
                Re: Pointers as error values Geoff <geoff@invalid.invalid> - 2015-10-30 13:23 -0700
      Re: Pointers as error values Geoff <geoff@invalid.invalid> - 2015-10-21 11:13 -0700
        Re: Pointers as error values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-21 20:31 +0100
          Re: Pointers as error values Geoff <geoff@invalid.invalid> - 2015-10-22 07:13 -0700
        Re: Pointers as error values "Morten W. Petersen" <morphex@gmail.com> - 2015-10-26 07:16 +0100
          Re: Pointers as error values Jorgen Grahn <grahn+nntp@snipabacken.se> - 2015-10-26 09:37 +0000
      Re: Pointers as error values glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-10-22 05:38 +0000
        Re: Pointers as error values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-22 13:51 +0100
        Re: Pointers as error values Keith Thompson <kst-u@mib.org> - 2015-10-22 08:29 -0700
          Re: Pointers as error values supercat@casperkitty.com - 2015-10-22 09:21 -0700
            Re: Pointers as error values Keith Thompson <kst-u@mib.org> - 2015-10-22 10:52 -0700
              Re: Pointers as error values "Morten W. Petersen" <morphex@gmail.com> - 2015-10-26 07:20 +0100
                Re: Pointers as error values Keith Thompson <kst-u@mib.org> - 2015-10-26 08:09 -0700
                Re: Pointers as error values supercat@casperkitty.com - 2015-10-26 08:40 -0700
                Re: Pointers as error values glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-10-26 20:02 +0000
                Re: Pointers as error values supercat@casperkitty.com - 2015-10-26 13:56 -0700
          Re: Pointers as error values glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-10-22 21:58 +0000
            Re: Pointers as error values James Kuyper <jameskuyper@verizon.net> - 2015-10-22 19:12 -0400
            Re: Pointers as error values asetofsymbols@gmail.com - 2015-10-22 18:36 -0700
              Re: Pointers as error values asetofsymbols@gmail.com - 2015-10-29 12:47 -0700
  Re: Pointers as error values Lőrinczy Zsigmond <nospam@for.me> - 2015-10-20 17:06 +0200
    Re: Pointers as error values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-20 19:45 +0100
      Re: Pointers as error values supercat@casperkitty.com - 2015-10-20 14:19 -0700
        Re: Pointers as error values glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-10-21 05:28 +0000
          Re: Pointers as error values supercat@casperkitty.com - 2015-10-21 05:48 -0700
            Re: Pointers as error values glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-10-22 05:52 +0000
          Re: Pointers as error values Ken Brody <kenbrody@spamcop.net> - 2015-10-21 15:19 -0400
            Re: Pointers as error values glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-10-22 06:06 +0000

csiph-web