C内存分配问题



我在c中有一个算法,其中多次使用malloc分配内存。我想写一个函数,当程序全部完成时释放内存,但我不确定如何构建它。它只是对free()的多次调用吗?我对C和内存分配比较陌生,所以如果有任何帮助,我们将不胜感激。

程序:

typedef struct State State;
typedef struct Suffix Suffix;
struct State {  /* prefix + suffix list */
char*   pref[NPREF];    /* prefix words */
Suffix* suf;            /* list of suffixes */
State*  next;           /* next in hash table */
};
struct Suffix { /* list of suffixes */
char *  word;           /* suffix */
Suffix* next;           /* next in list of suffixes */
};

malloc的每个调用都应该使用malloc返回的指针值对free进行相应的调用。

您需要使用某种容器(如数组、链表)将malloc返回的值存储在程序中,并在从main返回之前对这些值调用free

按照以下内容编写函数:

void freeMemory()
{
int i = 0;
State* sp = NULL;
State* tmp = NULL;
for ( i = 0; i < NHASH; ++i )
{
sp = statetab[i];
while ( sp != NULL )
{
tmp = sp->next;
free(sp);
sp = tmp;
}
}
}

并在CCD_ 9语句之前从CCD_。

相关内容

  • 没有找到相关文章

最新更新