Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | Keith Thompson <kst-u@mib.org> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: Pointers as error values |
| Date | 2015-10-22 10:52 -0700 |
| Organization | None to speak of |
| Message-ID | <lnh9lix03a.fsf@kst-u.example.com> (permalink) |
| References | (1 earlier) <lnlhayzw6g.fsf@kst-u.example.com> <n0781l$lg2$1@speranza.aioe.org> <n09sod$e2a$1@speranza.aioe.org> <lnlhaux6oi.fsf@kst-u.example.com> <fd50cbf6-4bc6-43e4-9c38-35836dab9bbb@googlegroups.com> |
supercat@casperkitty.com writes:
> On Thursday, October 22, 2015 at 10:29:57 AM UTC-5, Keith Thompson wrote:
>> 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.
>
> Does C guarantee that if "intptr_t" exists, that (intptr_t_)(void*)0 == 0 and
> that given intptr_t x=0, (void*)x == 0?
No. It only guarantees that (N1570 7.20.1.4p1)
any valid pointer to void can be converted to this type, then
converted back to pointer to void, and the result will compare
equal to the original pointer
where "this type" is either intptr_t or uintptr_t.
You do yave a copy of N1570, don't you? This would have been easy to
look up.
> I recall having read that casts or
> comparisons to a constant literal zero are special, and that even when a
> platform defines conversions between pointers and numbers they need not be
> consistent with that.
N1570 6.3.2.3p3:
An integer constant expression with the value 0, or such
an expression cast to type void *, is called a null pointer
constant. If a null pointer constant is converted to a pointer
type, the resulting pointer, called a null pointer, is guaranteed
to compare unequal to a pointer to any object or function.
Integer-to-pointer conversions are otherwise implementation-defined
(same section, paragraph 5).
Which means that given:
int zero = 0;
void *p0 = (void*)0;
void *p1 = (void*)zero;
the value of p0 is guaranteed to be a null pointer, but it's not
guaranteed that p0 == p1.
[...]
--
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
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