Is this defined behaviour in D?
John Burton
john.burton at jbmail.com
Mon Sep 25 13:06:56 UTC 2017
If I have a int* pointer for example, that points to the start of
an int array and step through the array until I get the value
123, is it defined in D what happens if you step off the end of
the array?
What I might expect to happen is for the code to just keep
stepping through sequential memory locations until it finds one
that happens to have a 123 in it, until it gets a memory
protection fault of some kind, or failing that wrap around memory
and go into an infinite loop.
The options are really
1) I can rely on the compiler consistently doing what I'd
"expect" on a specific platform.
2) There is some other defined behaviour
3) The compiler can do whatever crazy thing it feels like as this
is considered broken code.
I'm not for a moment suggesting this is a good idea, but what I'm
really asking is does the D language say anything about this? C++
seems to have chosen (3). Personally I'd prefer (1) but it's most
to know if the "standard" such as it is has anything to say on
such matters.
More information about the Digitalmars-d-learn
mailing list