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

Lajos Rancz lajos.rancz at gmail.com
Tue Jun 4 12:49:17 CEST 2013


Hi!

Struktúrára annyi, hogy:

struct MyStruct
{
int a, b;
};

typedef MyStruct MyArray[5][23];

void PrintMyArray(const MyArray &arr)
{
for (int i = 0; i < 5; ++i)
{
for (int j = 0; j < 23; j++)
{
printf("%d, %d", arr[i][j].a, arr[i][j].b);
}
}
}



2013. június 4. 12:46 Lajos Rancz írta, <lajos.rancz at gmail.com>:

> 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