Statikus tömb mint struktúra
Rancz Lajos
csiga at fosch.com
Thu May 18 15:26:36 CEST 2006
Hali!
Hopp, asszem rosszul fogalmaztam :-) Tehát az a lényeg, hogy van egy
mondjuk 64 bájtos munkaterületem, amit különböző struktúrák ideiglenes
tárolására használok:
typedef struct
{
....
} strukt1;
typedef struct
{
....
} strukt2;
.
.
.
typedef struct
{
...
} struktn;
unsigned char tomb[64];
használat strukt1 esetén:
((strukt1 *)tomb)->a = 2;
használat struktn esetén:
((struktn *)tomb)->valami = 'a';
Ugye elvi lehetőség egy union használata:
typedef union
{
strukt1 s1;
struk2 s2;
.
.
.
struktn sn;
} struktunion;
struktunion strukts;
strukts.s1.a = 2;
strukts.sn.valami = 'a';
De mi van akkor, ha nem tudom előre melyikeket kell beletegyem?
Kösz,
Lajos
Miko, Imre írta:
> strukt1 tomb[10];
> tomb[0].a = 5;
>
> Ez nem megy?
>
> Van ahol ki kell irni hogy struct:
>
> struct strukt1 tomb[10];
>
> I.
>
>
>> -----Original Message-----
>> From: elektro-bounces at tesla.hu
>> [mailto:elektro-bounces at tesla.hu] On Behalf Of Rancz Lajos
>> Sent: 2006.május 18. 15:03
>> To: elektro at tesla.hu
>> Subject: Statikus tömb mint struktúra
>>
>> Üdv!
>>
>> Dinamikus memória használat esetén könnyű szép programot
>> csinálni struktúrák használatára:
>>
>> tpyedef struct
>> {
>>
>> unsigned char a;
>> unsigned int b;
>>
>> } strukt1;
>>
>> int foo(int)
>> {
>>
>> strukt1 *ptr;
>> ptr = malloc(sizeof(strukt1));
>> ptr->a = 5;
>>
>> }
>>
>> Beágyazott programok esetén ugye nem célszerű mallocot
>> használni, ezért ilyen esetben statikus tömböt kell használni:
>>
>> unsigned char arr[512];
>> ((strukt1)arr)->a = 5;
>>
>> Van erre valamilyen szebb megoldás?
>>
>> Kösz,
>> Lajos
>>
>> -----------------------------------
>> Szponzorunk: http://tonerbolt.hu/
>>
>>
>
> -----------------------------------
> Szponzorunk: http://tonerbolt.hu/
>
>
More information about the Elektro
mailing list