Memory reallocation - keep my data in place
===

Assuming I have some array in heap doesn't matter constructed by `malloc` or `new`. I need the most efficient way to enlarge it. I mean if it has enough free space which lying after already allocated data can I keep my data untouched. Is it possible to maintain in C++? 

Is `realloc` works in such manner? 