Hirdetés

Új hozzászólás Aktív témák

  • jattila48
    aktív tag

    Ha pia egy másik függvényben van, akkor ott nem látod az eredeti tömböket. Lehet pl. pia egy függvény paramétere, és fontos, hogy szigorúan egy adott méretű tömb legyen neki átadva.

    Egyébként ha ez most már arra megy ki, hogy hogyan lehet elkerülni tömbre mutató pointer használatát, arra én is tudok módszereket mondani, ilyen vitában nem kívánok részt venni. De eredetileg mintha azt kérdezted volna, hogy mire lehet használni. Továbbra is az a válaszom, hogy olyan esetben, amikor számít a megcímzett tömb sizeof-ja.

    A baj csak az, hogy a tömbre mutató pointerhez hozzá van kötve a tömb mérete. Tehát, ha a tömbre mutató ponter egy fv. argumentuma, akkor annak semmilyen más méretű tömböt nem lehet átadni. Így aztán a tömb méretét lekérdezni nem sok értelme van, hiszen ez a fv. csak ilyen méretű tömböt képes fogadni.
    Nem vitatkozni akarok, csupán érdekel, hogy miért létezik ez a konstrukció a C nyelvben. Akkor lenne értelme, ha nem lehetne elkerülni a használatát, vagy az elkerülése bonyolultabb lenne. Ehelyett mindig el lehet kerülni, és egyszerűbben, mint használni. Pointereket leggyakrabban azért haználunk, hogy az általuk mutatott memória címen megváltoztassuk a memória tartalmát (vagy mert a stack-en nem lehet nagyméretű objektumokat átadni). Ehhez képest a tömbre mutató pointeren keresztül nem változtatjuk meg a tömböt (ami itt a tömb címét jelenti), hiszen az nem is balérték. Úgy tűnik, hogy igazából semmi értelme nincs, mindössze a C típusdefiníciós szintaxisának egy csökevénye.

Új hozzászólás Aktív témák