3. praktikum - Pointerimajandus
Allikas: Lambda
Selle praktikumi eesmärgiks on harjutada tööd pointeritega: dünaamiliste massiivide loomist ja funktsioonipointereid.
See tundub jube ja teil tekib soov teha seda kõike ümber adresseerides ja arvutades. Selline lähenemine on vale: kahemõõtmeline massiiv kahe malloc() väljakutsega on elementaarne C manööver ning selle vältimine tähendab, et mistahes programmi kirjutades tuleb hiljem ilge jama. Vaimustuge mõttest teha korrektne kahemõõtmeline massiiv dünaamilises mälus! Te arenete inimesena!
Ülesanne
- Kirjutage programm, mis saab käsurealt ühe arvu ja loob selle põhjal mällu uue kahemõõtmelise massiivi. Hõiva selle jaoks mälu.
- Kirjutage massiivi mingi omamõeldud sisu: näiteks korrutustabel vms.
- Trükkige saadud tabel ekraanile (väga suured tabelid saab suunata faili, seega ei pea kujunduse pärast muretsema).
- Kirjutage funktsioon apply(), mis rakendab igale etteantud massiivis olevale arvule etteantud funktsiooni ja salvestab tulemuse sinnasamasse.
void apply(int** arr, int arrx, int arry, int (*function)(int))
- Kasutage funktsiooni loodud massiivi töötlemiseks.
Kasutamise näide:
apply(arr, 3, 4, foo);
Vihjeid
- Funktsiooni main() argumentideks on üks täisarv ja üks kahemõõtmeline char-ide massiiv.
- Püüdke kahemõõtmelise massiivi initsialiseerimine kirjutada oma peaga tühja faili uuesti. See võib olla eksamiülesanne.