РЕДАКТИРОВАТЬ: Это было так очевидно, я понятия не имею, как я не заметил. Спасибо за вашу помощь, ребята!
Я создаю таблицу символов, используя двоичное дерево в C, и застрял при определении основных функций. Мне никогда не удавалось полностью понять операции с указателями, и эти ошибки причиняют мне боль, и я не знаю, как их исправить, хотя я уверен, что многие из вас сочтут мою проблему тривиальной.
У меня есть структура, определенная так:
typedef struct SymTable {
symbol_t *rootNode;
} symTable_t;
Функция инициализации, подобная этой:
void initTable(symTable_t *table) {
table->rootNode = NULL;
}
И в моем main.c я вызываю функцию:
symTable_t *newTable = malloc(sizeof(symTable_t));
// check if malloc was successful
initTable(&newTable);
Он выдает эти две ошибки при попытке перевести:
main.c:12:12: error: passing argument 1 of ‘initTable’
from incompatible pointer type [-Werror=incompatible-pointer-types]
initTable(&newTable);
^
In file included from main.c:1:0:
sym_tab.c:18:7: note: expected ‘symTable_t * {aka struct SymTable *}’ but argument is of type ‘symTable_t ** {aka struct SymTable **}’
void initTable(symTable_t *table) {
Когда я определяю initTable () как _initTable (таблица symTable_t) _, он выдает только больше ошибок.
Спасибозаранее.