如何在C中合并两段内存?

时间:2015-11-26 22:14:55

标签: c malloc free dynamic-memory-allocation

我应该使用链表实现硬编码malloc和free,其中链表包含免费的节点。 1.如果正在释放某些东西,我必须用内存检查左右位置,如果它们是空闲的,则将它们合并在一起。 但是,在以下调用之后,我遇到以下问题。 注意我们malloc超过x字节b / c它是x + sizeof(struct Node)

$('#menu').height(0);

var menuOpen=false;
$('a').click(function(e){
    if(!menuOpen){
        $('#menu').animate({
            height:100
        },200);
        menuOpen=true;
    }
    else{
        $('#menu').animate({
            height:0
        },200);
        menuOpen=false;
    }
    e.preventDefault();
    return false;
});
$('section').not('a').click(function(e){
    if(menuOpen){
        $('#menu').animate({
            height:0
        },200);
        menuOpen=false;
        e.preventDefault();
        return false;
    }
});

以下是我的合并功能:

Original Linked List: [2048]
Call:                              Linked List after Call:
malloc(50)                         [1974]
malloc(22)                         [1928]
free(50)                           [74]->[1928]
malloc(40)                         [1928]
free(22)                           [1974]
free(40)                           [2048]->[1928] *Should be just [2048]

0 个答案:

没有答案