if (pointer->address != PTR_NULL)
{
  if (next_address < pointer->max_address, { next_address = pointer->address + offset })
  {
    pointer->address = next_address; 
  }
  else
  {
    raise_access_error (...);
  }
}
else
{
  raise_access_error (...);
}

