Aktywne Wpisy

Mdx91 +3
Mam dla was rozkmine z #prawojazdy
Czy tylko dla mnie te rozwiazanie nie ma sensu? I czy w ogole takie skrzyzowanie istnieje?
No i vo z tym zawracanoem?
#polskiedrogi
Czy tylko dla mnie te rozwiazanie nie ma sensu? I czy w ogole takie skrzyzowanie istnieje?
No i vo z tym zawracanoem?
#polskiedrogi
źródło: temp_file505567301474578176
Pobierz
Tec1976 +113
Dajcie parę plusów statecznemu mirkowi ( ͡º ͜ʖ͡º)
źródło: temp_file3406544112337243619
Pobierz




#define SAFE_FREE(var) \if (var) {\
free(var); \
var = NULL; \
albo inny wariant
#define SAFE_FREE(var) \do { if (*var) \
free(*var); \
*var = NULL; \
} while (0)
czuję ciarki żenady na plecach i wiem, że się będzie działo (-‸ლ)
#jezykc #programista15k
Jest to bardzo skuteczna i poprawną i zdrowa praktyka.
@zibizz1
Chodzi o to że w c zaalokowana pamięć sama się
@Pan_krecik malloc i zwalnianie ok, deklarowanie wszystkich funckcjo przed implementacją też kojarzę. Nie rozumiem dlaczego OP czuje ciary żenady. Z powodu tego ze ktoś działa na pamieci co do której nie wie czy cos innego z niej nie korzysta? Co znaczy SAFE_FREE bo z tym tez sie nie spotkałem?
W tym kodzie zdefiniowano makro.
SAFE_FREE()
Zabezpiecza cię przed zrobieniem free() na zwolnionym już wcześniej bloku pamięci.
Gdybyś zrobił free() na zwolnionej już wcześniej pamięci ...Twój program od razu wylatuje i dostajesz klasyczny error stack
@zibizz1 swoją drogą, widać exp bo żeś to rozkminił od tak.
@Pan_krecik: Error dostajesz (przeważnie), ale raczej nie ten xD "Stack overflow" to zupełnie inna bajka.
Ludzie
Właśnie paradoksalnie ten.. :p
choć każdy wie że chodzi o naruszenie ochrony pamięci. ¯_(ツ)_/¯
Ja nie miałem tego na rekrutacji.. nauczyłem się od starszych i bardziej doświadczonych.
Ale chętnie nauczę się czegoś od Ciebie.
Ależ będzie robił. Weźmie wskaźnik że zmiennej i podejmie próbę zwolnienia zwolnionej pamięci... System w tym momencie zabije
@Pan_krecik: Podobnie jak z imieniem 'Sok Z Żuka" - żeby coś zyskać musisz coś dać od siebie. Też żeby inni mieli coś z tego. Daj argument za, a ja ci zbiję albo dam argument przeciw. Pierwsza strona której skończą się argumenty napisze "pass". Akceptujesz?
Idź trolowac gdzie indziej xD
1) jeśli ptr jest NULL to nie ma po co go dawać, bo free robi takiego checka
2) jeśli ptr nie jest NULL, ale wskazuje na zwolnioną już pamięć, to i tak się to wywali na free bo ten if tego nie wykryje
więc wystarczy samo free + nadpisanie ptr=NULL i tyle
Jeszcze zostało tak z 6 powodów. @Pan_krecik już się poddał, ale może Mirki z tagu #programowanie dadzą radę?