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