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