Подозреваю, что выводится отнюдь не "отрицательный адрес памяти", а вполне нормальный. Как по-твоему определяется, отрицательное ли число в integer? Скорее всего, просто всё, что меньше определённого значения - считается отрицательным. Соответственно, просто адрес оказался меньше "порога" и integer(point) выдало отрицательное число. А в винде адрес просто оказался больше (системы разные и адресация разная) - и integer(point) выдало положительное число.