[elektro] többdimenziós struktúra c++
Palasik Sandor
palasik at mail.datanet.hu
Tue Jun 4 10:39:17 CEST 2013
> 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...
Ha kicsit beleásod magad, akkor rájöhetsz, hogy egy több dimenziós tömböt
csak több adattal lehet leírni, míg a C minden paraméterhez csak egy adatot
ad át, konkrétan a tömböknek csak a címét. Nincs olyan varázslás, amivel ezt
az ellentmondást fel tudod oldani. Olyan sincs, hogy futásidőben árulod el,
hogy egy több dimenziós struktúrának mik a dimenziói, ezt tudnia kell
fordításkor. Fortranban van ilyen, C-ben nincs.
Ha meg akarsz maradni a X[I][J] jellegű indexelésnél tetszőleges méretű
tömbökkel, akkor csinálnod kell egy pointerekből álló tömböt, valahogy így:
VALAMI XA[10][20];
VALAMI *X[10];
for (i=0;i<10; i++)
X[i] = XA[i];
Ezután az X-et átadhatod egy olyan függvénynek, aminek a paramétere (VALAMI
**z) és tudod indexelni z[i][j] formában.
Palasik Sándor
More information about the Elektro
mailing list