gpt4 book ai didi

C:避免链表中的垃圾值

转载 作者:行者123 更新时间:2023-11-30 19:34:10 24 4
gpt4 key购买 nike

假设一个单词在字典中有多种含义。其实,在我的字典里,一个节点有5种含义。因此,当我查找该单词时,程序会打印 2 个含义以及其他 3 个 100 个字符长的垃圾值。

如何避免它们被打印?

这是我的代码:

struct node{
char word[20];
char meaning[5][100];
struct node *next;
};
void lookup(struct node *head, char *word)
{
int found = 0, i;
while(head != NULL)
{
if(strcmp(head->word, word) == 0)
{
found = 1;
printf("\n\t%s", word);
for(i = 0; i < 5; i++) printf("\n\t%s", head->meaning[i]);
printf("\n");
break;
}
head = head->next;
}
if(found == 0) printf("\nWord not found in the dictionary!!");
}

最佳答案

使用 calloc 或 malloc 之后执行 memset 分配节点元素,以便节点的所有内存(或成员)默认填充为 0。

struct node *node_element = (struct node *) calloc(1, sizeof(struct node));

然后通过检查长度打印含义,

for(i = 0; i < 5; i++) {
if(strlen(head->meaning[i]) > 0)
printf("\n\t%s", head->meaning[i]);
}

关于C:避免链表中的垃圾值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44225679/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com