[elektro] többdimenziós struktúra c++
Lajos Rancz
lajos.rancz at gmail.com
Tue Jun 4 12:46:46 CEST 2013
Hi!
Ha az eredeti cucc C++ akkor a legegyszerűbb:
typedef int MyArray[5][23];
void PrintMyArray(const MyArray &arr)
{
for (int i = 0; i < 5; ++i)
{
for (int j = 0; j < 23; j++)
{
printf("%d", arr[i][j]);
}
}
}
...
int arr[5][23];
...
PrintMyArray(arr);
Üdv
2013. június 4. 12:32 Balla Zoltán írta, <sdrlab at yandex.ru>:
> Feladó: "Palasik Sandor" <palasik at mail.datanet.hu>
> > 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.
> >
> Az ok, de én tudom is már fordításkor, mik a dimenziói az átadott tömbnek,
> és azt szeretném, ha az
> ezen a címen található adatokat, én C-ben a megfelelő ismert struktúra,
> ismert dimenziói szerint
> kezeljem. Ennél több adat nem is kell ide, és ez mind rendelkezésre is
> áll, de nem tudom rábírni,
> hogy abból a címből egy meghatározott dimenziójú, struktúrájú tömböt
> képezzen nekem...
>
> > 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.
> >
> Ezen majd még gondolkodom... Feltölteni a címből származtatott adatokkal
> egy előre elkészített
> tömböt fel tudok, és azt már használhatom a kívánt módon, de én pont ezt a
> fölösleges lépést
> szeretném kihagyni, és azonnal az adatokat elérni, nem közvetett módon,
> előzetes másolással...
>
> Zoli
>
> -----------------------------------------
> elektro[-flame|-etc]
>
More information about the Elektro
mailing list