C#-ban van egy LakokHelyzete nevű Point tömböm, van kettő lakóm (pointok), hogy tegyem bele őket a tömbbe?
private Point Fredi = new Point(43, 436);
private Point Alfred = new Point(12, 76);
private Point[] LakokHelyzete = new Point[2];
LakokHelyzete[0] = Fredi;
LakokHelyzete[1] = Alfred;
Mit csináltam rosszul?
private Point[] LakokHelyzete = new Point[2];
Ehelyett a te esetedben a stacken tárolnám a tömböt (ami amúgyis referencia-típus, így pár bájt lesz csak a mérete), azaz:
private Point LakokHelyzete[2];
#4 az egyik legfontosabb szempont a c# megalkotása alatt végig az volt, hogy ne legyen az a szpás a memóriafoglalással\felszabadítással mint c++ ban, ha akarsz sem tudsz ebbe belenyúlni.
Meg amúgy is hagyjál már, két szaros elemnél mi értelme lenne bármit is optimalizálni? Azt optimalizálod ami lassú, nem azt ami egy alsó kategóriás telefonon memóriájában is elfér n+1 milliószor.
"de maga a tömb az több helyre is létrehozható, például stack, heap"
Nem tudom, hogy ezt honnan veszed? De nem igaz.
Nincs olyan, hogy a tömb elemei itt, a "tömb" meg ott. Nincs külön olyan, hogy tömb, csak a tömbelemek vannak. Ezek összessége maga a tömb.
Stacken meg csak addig van valami, amíg az az aktuális függvény, szubrutin, eljárás, stb. le nem fut, amihez az a valami tartozik.
"az egyik legfontosabb szempont a c# megalkotása alatt végig az volt, hogy ne legyen az a szpás a memóriafoglalással\felszabadítással mint c++ ban, ha akarsz sem tudsz ebbe belenyúlni"
Én nem értek C#-hoz, csak rágugliztam most gyorsan, ez a stackalloc nem pont erre jó?
"ez a stackalloc nem pont erre jó?"
Dehogy ...
Ennyi okostojást...
"Nincs olyan, hogy a tömb elemei itt, a "tömb" meg ott".
A tömb az referenciákat, ha úgy jobban tetszik pointereket tárol. Amiket new-val hoztunk létre. Szóval a tömb és az elemei még csak véletlenül sem lehetnek ugyanott...
Ennyit erről.
További kérdések:
Minden jog fenntartva © 2025, 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!