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

flaist flaist at gmail.com
Wed Jun 5 22:18:51 CEST 2013


Szia!

Csak a komplexitás miatt, meg lehet-e valahogy oldani, hogy az

int arr[5][23];

definiálásba a "MyArray" becsempészni?

Köszi. FI.


-----Original Message-----
From: elektro-bounces at tesla.hu [mailto:elektro-bounces at tesla.hu] On Behalf
Of Lajos Rancz
Sent: Tuesday, June 04, 2013 12:47 PM
To: elektro at tesla.hu
Subject: Re: [elektro] többdimenziós struktúra c++

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]
>
-----------------------------------------
          elektro[-flame|-etc]



More information about the Elektro mailing list