two pointers (`DisplayPtr` and `GradePtr`) refer to the same heap block. When `UpdateGrade` disposes through `GradePtr`, it correctly sets `GradePtr := nil`. But it has no way of knowing that `DisplayPtr` also points to the same block. `DisplayPtr` is now dangling.