Dakle, znam ekvivalentne u c++ za malloc() i free() [new i delete, operatori), ali kako da pomocu ova dva operatora realizujem funkcije realloc()?

Posto radim na nekom programu, gde sam koristio operatore new i delete, ne bih bas da mesam c i c++, pa da koristim realloc(), a zaista mi je potreban. Jedina moja ideja je da napravim novi niz zeljene dimenzije, pa u njega prekopiram ceo stari niz, ali to i nije bas toliko efikasno ( O(n) = n + C, gde je c neka konstanta, tj broj za koji uvek uvecavam zauzeti deo memorije). Ovo C biti proporcionalno veliko sa n, sto mi bas i neodgovara. Medjutim, kod realloc() -a , ako postoji dovoljno veliki blok (slobodne) memorije, vreme prosirenja bloka ce biti O(1) sto je daleko bolje od O(n). Pa ako neko zna resenje ili ima neku ideju, bio bih mu veoma zahvalan.