Pointers - Is it safe to point to invalid memory?
monkyyy
crazymonkyyy at gmail.com
Sat Aug 16 22:00:25 UTC 2025
On Saturday, 16 August 2025 at 21:26:55 UTC, Brother Bill wrote:
> On Saturday, 16 August 2025 at 15:44:45 UTC, Richard (Rikki)
> Andrew Cattermole wrote:
>> On 17/08/2025 3:44 AM, Brother Bill wrote:
>>> On Saturday, 16 August 2025 at 15:30:43 UTC, H. S. Teoh wrote:
>>>> On Sat, Aug 16, 2025 at 03:24:55PM +0000, Brother Bill via
>>>> Digitalmars-d-learn wrote: [...]
>>>>> So a good D developer should not store an invalid pointer
>>>>> address into a pointer, with the single exception of
>>>>> storing a pointer address just past a slice or array.
>>>>
>>>> Where does it say this in the spec? Because this is wrong.
>>>>
>>>> D arrays carry length with them; they do not rely on
>>>> pointers pointing past the allocated memory region.
>>>>
>>>>
>>>> T
>>>
>>> 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.
>>
>> That is not the spec, the book is wrong.
>
>
> Please provide link to the current spec?
Its irrelivent https://dlang.org/spec/type.html#pointers
Its defined on deference not on existence.
Its over in the gc that has any relivence:
https://dlang.org/spec/garbage.html#pointers_and_gc
> Do not xor pointers with other values, like the xor pointer
> linked list trick used in C.
But this is just whake-a-mole docs, they are just describing how
the current gc works without thoery or usecase clarity
Rikki will be wrong, an exclusive bounded would *have to* be
defined by an off by 1 pointer, but no one does that not even me.
More information about the Digitalmars-d-learn
mailing list