malloc/free

Pavel Hudecek edizon na seznam.cz
Čtvrtek Listopad 3 01:28:59 CET 2016


Dobrý den všem,

mějme program v C, běžící v MCU s několika desítkami kB RAM.

Program čas od času alokuje nějakou paměť a jindy zas odalokuje. 
Předpokládejme, že se alokují kousky od několika B až do několika kB. 
Alokace a dealokace se dějí v obecně náhodném pořadí, tedy různé kousky 
paměti jsou alokovány na různou dobu.

1. Může se stát, že se paměť postupně fragmentuje tak, že od jistého 
okamžiku již nepůjde alokovat nějaké větší kousky, přestože celkové místo by 
bohatě stačilo?
2. Pokud se neděje (1), může se stát, že nějaký správce paměti bude v 
průběhu času již alokované kusy v případě nutnosti přesouvat, takže se budou 
měnit hodnoty pointerů na ně ukazujících?
3. Nebo to funguje úplně jinak? :-)

Díky,
PH 



Další informace o konferenci Hw-list