Skip to content

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Custom Malloc (mymalloc & myfree)

Bu proje, C dilinde basit bir malloc ve free implementasyonu sunar.
Amacım heap memory’nin teorik çalışma mantığını bildiğim halde, bunun uygulamada nasıl işlediğini öğrenmekti.

Özellikler

  • mymalloc(size_t size) → Heap’ten yeni bir blok ayırır.
  • myfree(void *ptr) → Ayrılan bloğu serbest bırakır.
  • Bellek bloklarının önünde metadata tutulur (size, free, next).
  • Basit linked list yapısı ile serbest/dolu bloklar yönetilir.
  • sbrk kullanılarak heap genişletilir.

Todo listim

  • Alignment ekle (8/16 byte hizalama)

  • Block splitting (büyük blockları parçala)

  • Doubly linked list’e geç (prev pointer ekle)

  • Coalescing iyileştir (hem prev hem next ile merge)

  • calloc implement et

  • realloc implement et

  • Allocation strategy geliştir (First Fit → Best Fit)

  • Minimum block size kontrolü ekle

  • Internal fragmentation azalt

  • Stress test yaz (çok sayıda malloc/free)

  • Random allocation testleri yap

  • Memory leak kontrolü yap (Valgrind)

  • Fragmentation analizi yap

Derleme ve Çalıştırma

cd build
cmake ..

📌 Örnek Kullanım

#include "my_malloc.h"
#include <stdio.h>

int main() {
    int *arr = (int *)mymalloc(10 * sizeof(int));

    for (int i = 0; i < 10; i++) arr[i] = i * 2;

    for (int i = 0; i < 10; i++) printf("%d ", arr[i]);

    myfree(arr);
    return 0;
}

Çıktı:

0 2 4 6 8 10 12 14 16 18

About

Bu proje, C dilinde standart malloc ve free fonksiyonlarının basit bir uygulamasını içeriyor. Projenin amacı, heap belleğin yönetim mantığını pratikte anlamak ve kendi bellek ayırma fonksiyonlarımızı nasıl yazabileceğimizi görmek.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages