Aktywne Wpisy
tiofen +296
Hej Mireczki,
w poniedziałek wyje*ali mnie z roboty, więc z tej okazji organizuję #rozdajo - wystarczy dać plusika, wyniki jutro po 16. ( ͡° ͜ʖ ͡°)
Do wygrania żółwik ze zdjęcia.
Zapraszam też na mojego instagrama tiofendzierga, dopiero się go uczę, więc wrzutek jest mało i średniej jakości. XD Ale kiedyś będzie lepiej, będę też dawać tam znać o jakichś moich tworach do przygarnięcia.
#
w poniedziałek wyje*ali mnie z roboty, więc z tej okazji organizuję #rozdajo - wystarczy dać plusika, wyniki jutro po 16. ( ͡° ͜ʖ ͡°)
Do wygrania żółwik ze zdjęcia.
Zapraszam też na mojego instagrama tiofendzierga, dopiero się go uczę, więc wrzutek jest mało i średniej jakości. XD Ale kiedyś będzie lepiej, będę też dawać tam znać o jakichś moich tworach do przygarnięcia.
#
for (void * ptr : list) {
delete ptr;
ptr = 0;
}
row.removeAll(0);
to DLACZEGO to zadziała? Tzn. bo działa ale wg mnie powinienem podać w pętli for referencję do wskaźnika, a tak to wskaźnik ptr jest kopią tego z listy więc przypisanie mu wartości 0 nie powinno działać. Ew. jak zrobić tak by nie działało? Tzn. wiem, że delete bez przypisania to trochę bez sensu ale teoretycznie taka możliwość powinna istnieć, nie? #programowanie
rzeczywiście, ptr jest w tym przypadku kopią wskaźnika. Natomiast działa to w połowie tak jak chcesz - tworzona jest kopia wskaźnika ptr, zwalniana jest pamięc pod tą kopią (równocześnie pod oryginałem - przecież wskazują na ten sam obszar pamięci. Poźniej przypisujesz NULLa do kopii, nie do oryginału. Jeśli chcesz również przypisać NULLa do oryginału, to musisz zrobić tak jak napisałeś - referencje
http://ideone.com/beeCcA
takie zachowanie generuje UB - undefinied behaviour. Może stać się cokolwiek. Może zadziałać dobrze, może wywalić się w tym miejscu a może działać jeszcze rok i wywalić się zupełnie gdzie indziej
for (void * ptr : list) {
delete ptr;
O.o co ja k---a patrze.... ten wykop to faktycznie ma