Pointers - Is it safe to point to invalid memory?
Andy Valencia
dont at spam.me
Sat Aug 16 22:28:15 UTC 2025
On Saturday, 16 August 2025 at 21:58:30 UTC, Paul Backus wrote:
> Creating a pointer that points out-of-bounds does not, by
> itself, result in undefined behavior.
>
> However, such a pointer would not be considered a [safe
> value][1], because dereferencing it *would* result in undefined
> behavior.
I'm just pondering whether the intention was to accomodate this
looping pattern:
```d
int sum_values(int* p, uint nval) {
int result = 0;
foreach(_; 0 .. nval) {
result += *p++;
}
return result;
}
```
A C idiom (I've so very much embraced not using pointers in my D
world) which technically leaves "p" pointing beyond the memory
range. Perhaps this is the special case being addressed?
Andy
More information about the Digitalmars-d-learn
mailing list