C-ben függvényben hogyan módosítható paraméterként átadott struktúra?
Legyen egy struktúrám, S.
S-nek van egy int tagja, num.
A feladat értéket adni num-nak egy függvényben, aminek paramétere S és egy egész szám, amit értékül adunk num-nak, pl.
f(S s, int n)
Ha a struktúra memória címét, egy pointert adtam át (más ekkor a függvény szignatúrája), akkor meg tudtam oldani, de így nem sikerül. (Visszatérési érték nem lehet a módosított struktúra, hanem egy int, ami 1, ha sikerült, 0, ha nem sikerült)
"Ha a struktúra memória címét, egy pointert adtam át (más ekkor a függvény szignatúrája), akkor meg tudtam oldani"
Akkor mi a probléma? Úgy csináltad, ahogy kell.
"(Visszatérési érték nem lehet a módosított struktúra, hanem egy int, ami 1, ha sikerült, 0, ha nem sikerült)"
Tisztázzunk valamit: Ha C-ben egy függvénynek átadsz valamit, akkor az lemásolódik és azzal dolgozik tovább a függvény. Ha te visszaadsz egy ugyanolyan objektumot utána a függvénnyel, akkor lesz egy harmadik példányod is.
A feladatot ezzel a kitétellel csak úgy tudod megoldani, ha a függvénynek a memóriacímét adod át, magyarul a pointerek felé kell nézelődnöd. Ha jól értem, akkor így is csináltad, szóval mi a probléma?
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!