出于某种原因,每当我访问表格中的任何数据时,内容都会被null
替换。该表是一系列链表。
void print(struct foo ** bar) {
struct foo ** helper = bar;
for (i = 0; i < size; i++) {
printf("%d: ", i);
while (helper[i] != NULL) {
printf("%s ", helper[i]->data);
helper[i] = helper[i]->next;
}
printf("\n");
}
printf("\n");
}
我尝试的都没有。该表打印一次,然后第二次返回null
。
答案 0 :(得分:2)
好吧,你用
修改数组helper[i] = helper[i]->next;
最终将其设置为NULL。 所以,你的问题并不令人意外。
如果要遍历哈希表,请尝试
struct foo *helper;
for (i = 0; i < tablesize; i++) {
printf("%d: ", i);
for (helper = bar[i]; helper != NULL; helper = helper->next)
printf("%s ", helper->data);
printf("\n");
}
答案 1 :(得分:1)
void print(struct foo ** bar) {
int i;
struct foo *ptr ;
for (i = 0; i < tablesize; i++) {
if (!bar[i]) continue;
printf("%d: ", i);
for (ptr=bar[i] ; ptr ; ptr = ptr->next ) {
printf("%s ", ptr->data);
}
printf("\n");
}
printf("\n");
}