Diskuze: Vlastná malloc funkcia
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 8 zpráv z 8.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
nechapem, co potrebujes? Aby ti niekto spravil obojsmerne zretazeny zoznam?
Ahoj, asi by si mal poslať viacej informácií ohľadom toho zadania.
Keďže niečo podobné som na FIITke kedysi riešil tak predpokladám, že máte
jeden globálny pointer, ktorý bude ako keby vaša celková dostupná pamäť a
máte implementovať nejaké funkcie ako memory_init kde tým pointerom
ukážeš na testom alokovanú pamäť. Potom treba implementovať niečo ako
memory_alloc kde by si mal vytvoriť nejakú štruktúru nazvime ju memory_block
v ktorej bude musieť byť hlavička s informáciami koľko daný blok má
priradenej pamäte a či je aktuálne využívaný (nebola na ňom zavolaná
funkcia memory_free) a ešte, keďže to máš robiť cez spájaný zoznam, bude
musieť ukazovať na ďalší blok za ním.
Takže hneď na začiatku bude jeden blok s informáciu že je voľný a koľko
pamäte je voľnej. Potom ak niekto zavolá memory_alloc(size) tak pozreš do
prvého bloku a ak je voľný tak za začiatok bloku + size vytvoríš nový
blok so zostávajúcou pamäťou a vrátiš pointer na ten alokovaný blok
atď..ťažko sa to zo šupy opisuje Ak máš implementovať aj funkciu memory_free tak v nej príde ako
parameter pointer na blok ktorý sa má uvoľniť a to pre teba bude znamenať
že v hlavičke toho bloku nastavíš, že sa blok aktuálne nevyužíva,
prípade spravíš nejaký merge voľných blokov (defragmentáciu).
Ak to nie je niečo na takýto spôsob, tak to ignoruj
Je to presne to čo potrebujem. Len mám dosť problém s tou implementáciou.
My to musíme ale riešiť explicitne, takže smerník mi neodkazuje na ďalší v poradí ale na ďalší voľný blok, preto obojsmerne spájaný zoznam.
Skús možno poslať trocha viacej k tomu zadaniu, ale neviem ako budem stíhať.
Je to presne to čo si písal. Tiež som na FIIT-ke. Jediný rozdiel v tom čo si napísal ty je, že smerníky mi neodkazujú na ďalší a predošlý blok v poradí ako idú za sebou ale odkazujú na ďalší a predchádzajúci voľný blok.
Zobrazeno 8 zpráv z 8.