[elektro] többdimenziós struktúra c++

Balla Zoltán sdrlab at yandex.ru
Mon Jun 3 21:25:09 CEST 2013


Feladó: "Palasik Sandor" <palasik at mail.datanet.hu>
> A fordító csak egy pointert ad át, ami az első elemre mutat, de azt nem adja
> át, hogy mekkorák a dimenziók. Egy dimenziós esetben ez nem gond, de több
> dimenziósnál így nem működik. Fordítási időben el kell árulnod az összes
> dimenziót, legfeljebb az elsőt hagyhatod el.
>
> Tehát ha teszem azt struct VALAMI X[5][6] a tömb, akkor átadhatod egy olyan
> függvénynek, aminek a paramétere (struct VALAMI y[5][6]) vagy (struct VALAMI
> (*z)[6]). A zárójel fontos. A (*z)[6] az egy olyan pointer, ami hat elemű
> sorokból álló két dimenziós tömbre mutat, a *z[6] pedig egy hat pointerből
> álló tömbre.
>
> Amit te írtál le, az egy tömb címét adja át, ami pointereket tartalmaz. Meg
> lehet ezt is csinálni, hogy csinálsz egy pointertömböt, amiben az elemek az
> eredeti tömb soraira mutatnak. Ennek az a hátránya, hogy több memóriát
> használ és külön fel kell tölteni, de az előnye az, hogy nem kell
> szorozgatni a sor méretével ahhoz, hogy kiszámolja a valódi indexet. A
> legtöbb hardveren kettő hatványaival egyszerűbb szorozni, mint akármi
> mással. Ráadásul, ha a sor mérete nem ismert előre, akkor vagy így működik a
> dolog, vagy külön változóban át kell adni a sor méretét aztán zsonglőrködni
> az indexekkel.
>
Tehát azt mondod..., hiába tudom egy tömb címét a memóriában, a tömb struktúráját...mégsem tudok 
generálni ezekből az adatokból egy számomra elfogadható logikai hozzáférés-rendszert ? Ezt valahogy 
nem akaródzik elhinni, hiszen a c pont a rugalmasságáról híres... 



More information about the Elektro mailing list