int main() { struct Node * tempNode1, *tempNode2, *tempNode3; int size = 10; struct HeadNode * tempHead = buddy_new(size); if (tempHead!=NULL) { //注意申请的空间最大不是2^k, 而是2^k - 1 tempNode1 = buddy_alloc(tempHead,size,511); buddy_print(tempHead, size); tempNode2 = buddy_alloc(tempHead,size,10); buddy_print(tempHead, size); tempNode3 = buddy_alloc(tempHead,size,10); buddy_print(tempHead, size); buddy_combine(tempHead, size, tempNode3); buddy_print(tempHead, size); buddy_combine(tempHead, size, tempNode2); buddy_print(tempHead, size); buddy_combine(tempHead, size, tempNode1); buddy_print(tempHead, size); } buddy_free(tempHead); getchar(); return 0; }
void mem_buddy_test() { as_mem_buddy_t *b = buddy_new(4); unsigned x = buddy_alloc(b, 4); buddy_alloc(b, 8); buddy_alloc(b, 2); buddy_free(b, x); buddy_print(b); buddy_destroy(b); }