ошибка константы во время компиляции и имя параметра в C опущено - PullRequest
0 голосов
/ 04 июля 2019

Я пытаюсь создать функцию для «очистки» в pset4 из cs50 2019 и по какой-то причине я не могу сделать копию моего первого узла «root», потому что «элемент инициализатора не является константой времени компиляции узел * rootcpy = root; "вот код:

typedef struct node
{
    bool is_word;
    struct node *children[N];
}
node;
// Represents a trie
node *root;

node *rootcpy = root;

Я думал, что это должно быть довольно просто, но нет, по какой-то причине это не работает.

Также, когда я пытаюсь создать функцию, использующую рекурсию для «unload» части проблемы в pset4, и это выдает мне эту ошибку »имя параметра пропускается void clear (node ​​*) ". Вот код, я понятия не имею, почему он неправильный:

void clear(node*)
{
for (int i = 0; i < 27; i++)
    {
    if (rootcpy->children[i] != NULL)
        {
            clear(rootcpy->children[i]);
        }
    }
    free(rootcpy);
}

Я уже пытался использовать help50 и ничего, у меня больше ничего нет.

Я ожидал, что рекурсивная функция «clear» сработает, просто выполнив «clear (rootcpy)», где rootcpy - это копия «root» первого узла в моей папке. Это функция для выгрузки файла.

...