AW: C - lokalis tomb, vagy pointer+malloc
Rancz Lajos
csiga at fosch.com
Mon Jan 23 11:32:17 CET 2006
Helló!
Tehát az a kérdés, hogy mi az alkalmazás. Ha PC-re írt szoftver amit
elindítanak majd leállítanak akkor jó a free-malloc. Ha beágyazott
alkalmazás akkor két eset van:
1. stacken definiált tömb
2. static tárolási osztályú tömb
A 2. esetben elkellhet valamilyen állapotautomata amivel nyilvántartod,
hogy épp mit csinálsz a tömbben lévő adatokkal.
Üdv,
Lajos
WLC02E, írta:
> Szia,
>
>free-vel felszabaditom a heapen elfoglalt teruletet, nem?
>
>De tegyuk fel, hogy,a fragmentalodas, stb miatt kizazom a malloc-free megoldast, akkor hogyan adok vissza nagyobb tomboket a hivo fuggvenynek? Marad fix tomb a hivo fuggvenyben es a fuggvenyargumentumon keresztuli parameteratadas? Igy viszont adott esetben sokkal tovabb (amig fut a hivo fv.) foglalom a memoriat a nagy meretu tomb szamara, vagy atadom a hivott fuggvenyen belul lokalisan generalt majd megszuntetett tomb cimet es remelem, hogy nem irkal bele egy megszakitas sem, amig feldolgozom? :-))
>
>Koszonom!
>
>Zoli
>
>
>
>>-----Ursprüngliche Nachricht-----
>>Von: Rancz Lajos csiga at fosch.com
>>
>>
>
>
>
>
>>Sima C-ben (ahol nincs garbage collector) a függvény futása után nem
>>szabadulnak fel a dinamikusan foglalt memória területek!!! A másik fő
>>különbség, hogy a lokális változók a stackbena vannak, a dinamikusak
>>pedig a heapen. Sokáig futó rendszerben (eg. beágyazott) nem
>>ajánlatos
>>dinamikusan memóriát használni, pl. MISRA nem is engedi. IAR
>>doksi szerint: "For each allocated memory block, a few bytes of data for
>>administrative purposes is required. For applications that allocate a large
>>number of small blocks, this administrative overhead can be substantial. There is
>>also the matter of fragmentation; this means a heap where small sections
>>of free memory is separated by memory used by allocated objects. It is
>>not possible to allocate a new object if there is no piece of free
>>memory that is large enough for the object, even though the sum of the
>>sizes of the free memory exceeds the size of the object. Unfortunately,
>>fragmentation tends to increase as memory is allocated and released.
>>Hence, applications that are designed to run for a long time should try
>>to avoid using memory allocated on the heap."
>>
>>Szóval a malloc-kal vigyázni kell.
>>
>>Üdv,
>>Lajos
>>
>>
>
>-----------------------------------
> Szponzorunk: http://tonerbolt.hu/
>
>
>
More information about the Elektro
mailing list