Heap inicializácia ...

J

john2020

Guest
Hello All,

Mohol by niekto posúdiť nasledujúci kód init_mem.c.

Tu je kód pre init_mem.c
void init_mempool (
void * bazén, / * adresa pamäť * /
unsigned int size) (/ * veľkosť bazéna v bajtoch * /

/ * Nastaviť __mp__ poukázať na začiatok bazéna a nastavenia
* Veľkosti bazéna.
* /

__mp__ = (struct __mp__ *) ((unsigned int) ((unsigned int) bazén 3) & ~ 3);

/ * Nastaviť odkaz bloku v bazéne na NULL (pretože je to jediný
* Blok) a inicializovať veľkosť jeho dátovej oblasti.
* /

((struct __mp__ *), bazén) -> next = NULL;
((struct __mp__ *), bazén) -> len = veľkosť - Hlien;
)

Tu je spôsob, zkusím to:
unsigned char memory_pool [0x4000];

void main (void)
(
init_mempool (memory_pool, sizeof (memory_pool));
Rx_Data_Buffer = (char *) calloc (10, 1);
free (Rx_Data_Buffer);
)

Výška init_mempool () zlyhá, ale keď dám štart adresu pamäte RAM
a jeho celkovej veľkosti ako parametre init_mempool (), funguje to.

Ako budem mať možnosť prideliť obmedzenú časť RAM ako Heap?

Pozdravy,
John

 

Welcome to EDABoard.com

Sponsor

Back
Top