malloc/free a new/delete

0

Czy ktos jest w stanie wytlumaczyc mi jaka jest roznica miedzy tymi dwoma ( a moze czterema?) komendami ??

Chodzi mi dokldanie to czy one roznia sie w jakims stopniu implementacja czy czym ??

0

w obiektowce zaleca sie stosowanie new i delete. poza tym sa one bardziej intuicyjne w pisaniu

0

Jedna para to funkcje, druga to operatory. Poza tym new/delete wywoluje konstruktor/destruktor przy tworzeniu lub usuwaniu obiektu.

1

hehe.. i AFAIR new/delete nie ma w C ;> to wymysl C++ wlasnie po to zeby destruktory i konstruktory uruchamiac ;>>>

0

Czy jest jakaś różnica w wydajności?? Gdy stosuje malloc()/free() to program zajmuje nieporównywalnie mniej niż gdybym użył new/delete.

0

W wydajnosci teoretycznie nie powinno byc zadnej roznicy. Kod sie robi wiekszy, poniewaz dolinkowuje Ci do programu libstdc++ (lub jakis odpowiednik w Twoim kompilatorze). Mozesz przejechac stripem, to sie zrobi mniejsze. Nie widze u siebie prawie zadnej roznicy w rozmiarze: pusta aplikacja z jednym malloc - 2740 B, aplikacja z jednym new - 2788 B.

Jesli chcesz miec naprawde wypasiona wydajnosc (byc moze kosztem wiekszego zuzycia pamieci), to nie uzywaj malloc/free bo sa wolne. Napisz sobie wlasny allocator, jesli jestes twardzielem oczywiscie. [cygaro]

0

r0tfl u mnie z 3KB skacze na 22 po użyciu jednego new. Używam Dev-C++.

0

r0tfl u mnie z 3KB skacze na 22 po użyciu jednego new. Używam Dev-C++.

Grunt to dobry kompilator, hihi. Podobno najmniejszy kod produkuje VC++. :)
W gcc (uzywane przez dev-c++) ustaw opcje -fno-exceptions -Os
oraz przejedz kod wynikowy stripem, to zobaczysz jak sie ubije.

0

Nawiązując do VC++: czemu gdy zaznaczem opcję Optimalization->Maximum Speed / Minimum Size wywala mi błąd:
'/ZI' and '/O2' command-line options are incompatible
?

0

No bo moze VC++ tak nie portafi. Albo maximum speed, albo minimum size.

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