Ваш код содержит ошибку в методе add_to_dictionary.
Проблема # 1: Строка 80 должна быть изменена на if(stringcompare == 0)
(вы пропускаете символ =, что делает его присваиванием. Stringcompare будет 0 после выполнения вместо проверки, если оно равно 0. Результатом присваивания является присвоенное значение, а 0 соответствует значению false в C).
Проблема № 2: Ваш цикл проверяет только первый элемент в списке. Вы должны удалить остальное.
Проблема № 3: строки 90 и 91 не должны быть в цикле. Закрывающая скобка в строке 92 закрывает цикл.
Проблема № 4: В new_entry вы должны memcpy
или strcpy
значение stringone, а не присваивать его. Назначение указателя заставляет его указывать на новый адрес. То, что вы хотите сделать, это чтобы текущий адрес имел то же содержимое, что и другая строка. Для этого вам нужно пройти через старую память и копировать элемент за элементом в новую память. Поскольку вы часто это делаете, кто-то написал функцию, которая сделает это за вас (strcpy
или memcpy
, как было упомянуто ранее).
Я не очень проверял остальную часть кода, поэтому нет гарантий, что этот список является исчерпывающим.