0

我试图在我的程序退出之前释放我的哈希表使用的内存,但是我收到了这个错误:

anagram(14510) malloc: *** error for object 0x100103be0: pointer being freed was not allocated

以下是我用来释放表的代码:

for(temp=0; temp<NHASH; temp++){

    sp=statetab[temp];

    while (sp!=NULL) {
        test=sp;
        sp=sp->next;
        free(test->word);
        free(test);
    }
}

我不确定为什么会这样,因为它确实正确地释放了这个词。有任何想法吗?

4

1 回答 1

-1

您的程序要求的大多数资源(当然是数据的内存空间)将在程序退出时自动释放。除非您需要程序中的空间(或者它会在不再需要哈希表后运行很长时间),否则请不要担心。

于 2013-01-20T03:38:25.657 回答