Realloc w C++?

0

W jezyku c byla funkcja realloc(), do czego sluzyla wiekszosc osob wie. Czy jest podobna funkcja w C++, analogiczna do new i delete?

0

Niestety nie ma. Realloc natomiast nie powinno byc mieszane z new/delete. Mozna oczywiście zezygnować z operatorów na rzecz funkcji malloc/free - choc realloc bardzo ladnie dziala w ich zastepstwie (odpowiednio potraktowane może pracować za nie obie).

// Sprawa ma sie inaczej w przypadku obiektow, new delete jest nieodzowne

0

Realloc natomiast nie powinno byc mieszane z new/delete.

a ja pomieszałem i nic strasznego się nie stało... ;p

// to zależy od wersji (i) kompilatora... Jesli chodzi ciesz sie, ale nie powinieneś mieszać (bo od tego głowa może rozboleć :-P ). [mf]

testowane na bcb 6.0, gcc i chyba vc++ 6.0 :-P

// to stestuj jeszcze na tc 1.0 :] [mf]

0

Zamiast realloc uzywaj new/delete wyjdzie ekonomiczniej.
Jezeli masz np. tablice powiekszyc to najlepiej jest utworzyc nowa (zasada mowi ze 2x wieksza) skopiowac dane ze starej, usunac stara i podmienic referencje. Dziala jak realloc.
Jezeli chcesz faktycznego realloca to pod win byla jakas funkcja do tego (ale nie powiem teraz jaka musisz w sdk poszukac), ale zwykle to sie wiaze i tak z reczna alokacja (jakbys uzyl realloc). Pod uniksami problemow nie ma. Mieszac mozna dosyc swobodnie.

0

Co do realloc to powiem tylko tyle ze pod niektorymi kompilatorami jest bląd ktory uniemozliwia zwiekszenie sterty powyzej 0xFFFF bajtow (djgpp) mimo iz powinno byc to mozliwe...

1 użytkowników online, w tym zalogowanych: 0, gości: 1