my own malloc algorithm in C