【发布时间】:2021-02-12 04:01:48
【问题描述】:
我有一个类似于链表的结构表。我的目标是清空该表中的所有内容。我认为我的想法是正确的,但它不起作用,我不知道为什么。
typedef struct table{
LIST *top;
int size;
}TABLE;
我正在尝试的是获取表格中的每一件事并将free() 应用于它。然后将表的顶部设置为NULL,这样我以后就无法通过它并将大小设置为0。
void empty_table(TABLE *table) {
LIST *cur;
for (cur = table->top; cur != NULL; cur = cur->next) {
if (cur == NULL) return;
free(cur);
}
table->top = NULL;
table->size = 0;
}
显然这不起作用,我不知道原因。我尝试了一个简单的运行,它甚至没有改变大小。
// ...
printf("table has %d elements\n",tab->size);
empty_table(tab);
printf("table has %d elements\n",tab->size);
// ...
我在这里测试tab 是指向表的指针。
输出是:
table has 5 elements
table has 5 elements
【问题讨论】: