Kihagyás

9. gyakorlat

Kapcsolódó tananyagok

  • függvénypointerek

  • valgrind és a memóriahibák

Órai feladatok

Órai segédletek
  1. Töltsük le a kiinduló kódunkat és csomagoljuk ki egy üres könyvtárba a tar xvzf gyak9_init.tgz paranccsal!
  2. A make paranccsal állítsuk elő a binárisunkat, ami most a prog névre hallgat!
  3. 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!
  4. Futtassuk a programot a következő módon: valgrind ./prog torony.pgm ki inverse
  5. Futtassuk a programot a következő módon: valgrind ./prog torony.ppm ki inverse módon is? Mit tapasztalunk? Futtassuk a valgrind-et a --leak-check=full kapcsoló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!
  6. Próbáljuk elrontani a programunk memória használatát többféleképpen! Pl. az inverse függvényben módosítsuk, hogy a ciklusváltozó mekkora értéket vehet fel! Nézzük meg, mit vesz ebből észre a valgrind!

Gyakorló feladatok

  1. 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!
  2. Futtasd a megvalósított algoritmusokat valgrind segítségével is! Mindent jól csináltál?