A megőrzött memória megértése a függvényekben
Egy függvény összefüggésében a "megőrzi" arra a tényre utal, hogy a függvény nem szabadítja fel vagy szabadítja fel az általa használt memóriát. Ehelyett megtartja a memóriát, és felelős annak felszabadításáért, amikor már nincs rá szükség.
Más szóval, a memóriát megőrző függvény nem küldi vissza a memóriát a kupacba vagy a verembe, miután befejezte a használatát. Ez azt jelenti, hogy a függvény felelős a memória élettartamának kezeléséért, ami bizonyos helyzetekben hasznos lehet, de gondos kezelést igényel a memóriaszivárgások elkerülése érdekében.
Például vegyünk egy olyan függvényt, amely memóriát foglal le egy nagy adatszerkezethez, majd visszaad egy mutasson arra az adatstruktúrára a hívó felé. Ha a funkció nem szabadítja fel a memóriát, amikor már nincs rá szükség, a memóriát a függvény megtartja, és a hívó felelős annak későbbi felszabadításáért. Ez memóriaszivárgáshoz vezethet, ha a hívó elfelejti felszabadítani a memóriát.
Ezzel szemben egy olyan függvény, amely egy mutatót ad vissza a veremben vagy a kupacban lefoglalt memóriára, majd felszabadítja a memóriát, amikor már nincs rá szükség (azaz ` malloc" és "free") nem őrzi meg a memóriát. A memória visszakerül a kupacba vagy a verembe, amint a funkció befejezi a használatát, így a hívónak nem kell aggódnia a memória élettartamának kezelésével kapcsolatban.



