9. gyakorlat
Kapcsolódó tananyagok¶
-
függvénypointerek
-
valgrind és a memóriahibák
Órai feladatok¶
Órai segédletek
- Töltsük le a kiinduló kódunkat és csomagoljuk ki egy üres könyvtárba a
tar xvzf gyak9_init.tgzparanccsal! - A
makeparanccsal állítsuk elő a binárisunkat, ami most aprognévre hallgat! - Futtassuk a programot! Egy kicsit változott a program! Nézzük meg alaposabban! Most már három paramétert vár: az input képet, a kimeneti kép nevét és egy algoritmust, amelyet a képen szeretnénk megvalósítani. Ez utóbbit természetesen csak akkor tudjuk alkalmazni, ha az adott típusú képre az adott algoritmus implementálva van. Nézzük meg az
image.cállományban, hogy is érjük el mindezt függvénypointerek segítségével! - Futtassuk a programot a következő módon:
valgrind ./prog torony.pgm ki inverse - Futtassuk a programot a következő módon:
valgrind ./prog torony.ppm ki inversemódon is? Mit tapasztalunk? Futtassuk avalgrind-et a--leak-check=fullkapcsolóval is! Ha megtaláltuk a probléma forrását, próbáljuk ki azt is, mi történik akkor, ha követjük a forráskód javaslatát az adott ponton! - Próbáljuk elrontani a programunk memória használatát többféleképpen! Pl. az
inversefüggvényben módosítsuk, hogy a ciklusváltozó mekkora értéket vehet fel! Nézzük meg, mit vesz ebből észre avalgrind!
Gyakorló feladatok¶
- Ha a 7. gyakorlat feladatait még nem implementáltad (csomó képtranszformáció volt felsorolva, emlékszel?), akkor itt az alkalom! Implementáld és módosítsd a programot úgy, hogy azt meg tudd hívni a fenti módon, parancssoron keresztül!
- Futtasd a megvalósított algoritmusokat
valgrindsegítségével is! Mindent jól csináltál?