需要帮助在 C 中打印动态分配的链表

Need help printing a dynamically allocated linked list in C

typedef struct Word {
    char** translations;
    struct Word* next;
} Word;

typedef struct {
    char** languages;
    int numOfLanguages;
    Word* wordList;
} Dictionary;

void printWordList(Word* wordlist, int numOfLanguages)
{
    Word* currentWord = wordlist;
    int i = 0;
    while (currentWord != NULL)
    {
        for (i=0; i < numOfLanguages; i++)
        {
            printf("%s", currentWord->translations[i]);
            if (i < numOfLanguages - 1)
                putchar(',');
        }
        putchar('\n');
        currentWord = currentWord->next;
    }
    putchar('\n');
}

嘿,我有一个程序,它是一个动态分配的字典,其工作方式如下:

选择字典:

  1. 英语、西班牙语、法语

  2. 英语、希伯来语

  3. 西班牙语、英语

    1
    

用英语、西班牙语、法语输入单词:

Thank_you,Gracias,Merci

单词添加成功!

稍后我使用上面的函数 printWordList 来尝试打印所有单词(及其翻译,Thank_you,Gracias,Merci 算作一个,Gracias 和 Mercy 在 translations 数组中)

当只有一个单词和翻译时,该函数可以完美运行,但如果我向列表中添加另一个单词,它会进入无限循环并且仍然只打印第一个单词。

实际上,您在上面发布的 printWordList 函数不会无限循环,除非您在为 last 节点填充 next 值时犯了错误。