Чтобы ответить на вопрос в виде вопроса:
void tree_input()
принимает указатель на указатель в качестве аргумента, а node_s->left
- указатель.Поэтому все, что вам нужно сделать, это получить указатель на указатель с помощью операнда address-of.
Однако, поскольку tmproot
является указателем на указатель, его также необходимо разыменовать перед тем, как выможно использовать оператор ->
.
tree_input(value, &(*tmproot)->left);
Однако вы также должны знать, что ваша функция new_node()
и способ ее использования довольно неработоспособны.
При настройке теперь вы создаете новый node_t
в куче, копируете его в стек и сохраняете указатель на этот экземпляр стека в своем дереве, который сразу становится висящим указателем, аВыделенная куча память просто утекает.
Чтобы исправить это, функция должна возвращать node_t*
, а не node_t
.Все остальное должно течь естественно оттуда.