[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