(2013/04/29 2:19), Magnus Holm wrote:
> What exactly does "moving memory areas" mean? Do you have any links?

This is pseudo code:
ary_push(VALUE ary, VALUE item)
{
  old_size = RARRA_LEN(ary);
  realloc(RARRAY_PTR(ary),  old_size + 1); <- change memory area
  RARRAY_PTR(ary)[old_size] = item;
  RARRAY_SET_LEN(ary) = old_size + 1;
}

-- 
// SASADA Koichi at atdot dot net