Эта ошибка есть и в английской версии справки. Действительно в примере из справки адреса указателей "a" и "b" получаются одинаковые, видимо из-за небольших размеров участка памяти. Но стоит увеличить размер выделяемой памяти и картина меняется: указатели становятся разными.
Вот пример:
Код
Dim a As Integer Ptr, b As Integer Ptr
?:?WStr("Исходное состояние; Память = "),, Fre\1000000; WStr(" МБ")
a = Allocate(100000000 * SizeOf(Integer)) ' Выделение памяти
For i As Integer =0 To 100000000-1 ' заполняем
a [i]= 1
Next
b = Reallocate(a, 1.5 * 100000000 * SizeOf(Integer)) ' Перераспределяем память: увеличиваем в 1.5 раза
?:?WStr("указатели (a,b) = ");a;", ";b ' куда указывают указатели
?:?WStr("Память до Deallocate(a) = "),,, Fre\1000000; WStr(" МБ")
Deallocate a ' Очистка a
?:?WStr("Память после Deallocate(a) = "),, Fre\1000000; WStr(" МБ")
Sleep
Deallocate b ' Очистка b
?:?WStr("Память после Deallocate(b) = "),, Fre\1000000; WStr(" МБ")
Sleep
' Вывод на экран:
'
' Исходное состояние; Память = 1937 МБ
'
' указатели (a,b) = 4325408, 404357152
'
' Память до Deallocate(a) = 1536 МБ
'
' Память после Deallocate(a) = 1536 МБ
'
' Память после Deallocate(b) = 1937 МБ