Memory pool allocator in C without using built-in malloc() and free() functions

แชร์
ฝัง
  • เผยแพร่เมื่อ 14 พ.ย. 2024

ความคิดเห็น • 4

  • @revanthrajashekar5983
    @revanthrajashekar5983 ปีที่แล้ว +2

    In the function my_free , heap_small[ALLOC_CNT] and heap_large[ALLOC_CNT], both are OOB. It needs to be ALLOC_CNT - 1.

  • @karthickNarayanan
    @karthickNarayanan ปีที่แล้ว +1

    in free function should the ptr be subtracted from base address of addr and then we should do Modulo ?

  • @galalroy
    @galalroy 2 ปีที่แล้ว

    Possible solution
    for (int i = 0; i < ALLOC_CNT; i++) {
    if (ptr == (void*)heap_small[i]) {
    used_small[i] = false;
    break;
    }
    if (ptr == (void*)heap_large[i]) {
    used_large[i] = false;
    break;
    }
    }

  • @galalroy
    @galalroy 2 ปีที่แล้ว +3

    your my_free func have critical bug if (addr % HEAP_SMALL == 0) never happen