Pointers - Is it safe to point to invalid memory?
Richard (Rikki) Andrew Cattermole
richard at cattermole.co.nz
Sat Aug 16 23:32:00 UTC 2025
On 17/08/2025 11:21 AM, Ali Çehreli wrote:
> On 8/16/25 8:44 AM, Brother Bill wrote:
>
> > Source: Programming in D book, page 432, chapter 68.8
> > Quote: It is valid to point at the imaginary element one past the end of
> > an array.
>
> I am the author. I have no problem with that part of the book: The quote
> is correct.
>
> Both C and C++ explicitly state what I wrote above. That guarantee is
> necessary so that looping over the elements of an array does not make
> the program illegal just because the array may be sitting at the end of
> an allocated page.
>
> D does not reject that part of C's memory model.
>
> Ali
We in fact do reject it.
"When a pointer to T is dereferenced, it must either have a null value,
or point to a valid instance of type T."
"Undefined Behavior: dereferencing a pointer that is not null and does
not point to a valid instance of type T."
https://dlang.org/spec/type.html#pointers
More information about the Digitalmars-d-learn
mailing list