From what I briefly read, it allocates used memory. SO lets say you have an array, and you want to expand the array, in basic you would REDIM the array, with a new value, as in:
DIM A(1) REM variable A now has 1 storage space in its array.
....some code manipulates variable A and it needs more space......
Now variable A can hold 5 values! Remember when trying to access arrays, the count starts a 0, not 1!
I believe that is what realloc(ate) does. Let me know if anyone comes to the same conclusion.