On Saturday, 8 September 2018 at 17:01:33 UTC, Jacob Shtokolov wrote:
So, modification of pointer values is prohibited (if I understand this sentence correctly).

@safe code can't manipulate the pointer itself, in order to avoid memory corruption.

So this is forbidden:

void main() @safe
{
  int* p = malloc(512);
  p++;
}

But in @safe code, the compiler assumes that all pointers you receive are valid. And the null pointer is also valid -- dereferencing it results in a segmentation fault rather than memory corruption.

Reply via email to