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 に答える