Почему требует скобочку

201
09 мая 2019, 16:40

Есть код:

  struct node
    {
        int data;
        node* left;
        node* right;
        int height;
    };
 node* singleRightRotate(node* &t)
    {
        node* u = t->left;
        t->left = u->right;
        u->right = t;
        t->height = max(height(t->left), height(t->right))+1;
        u->height = max(height(u->left), t->height)+1;
        return u;
    }

Я его переписал для себя:

struct avlleaf { // структура для представления узлов дерева
    char key[256];                                // Ключ
    unsigned long long int llupar;                // Числовой параметр
    long long int height;                         // Высота
    struct avlleaf* left;                        // Левый ребенок
    struct avlleaf* right;                       // Правый ребенок
};
// Small Left Rotation
struct avlleaf* SLR(struct avlleaf* &tree){
 struct avlleaf* tmp;
 tmp = tree->right;
 tree->right = tmp->left;
 tmp->left = tree;
 tree->height = MaxLL(Height(tree->left), Height(tree->right))+1;
 tmp->height =  MaxLL(Height(tree->right), tree->height)+1 ;
 return tmp;
}

Компилятор выдает ошибку:

[bcc32 Error] File1.c(83): E2293 ) expected

Answer 1

В С нет ссылок, поэтому такое

struct avlleaf* &tree

компилятору непонятно в принципе. Он пытается придумать объяснение, что вы хотели, и решает, что, наверное, просто объявить функцию, указав только тип параметра, но не его имя... И просит скобку.

READ ALSO
qt получить json объект с сайта на flask

qt получить json объект с сайта на flask

Пишу программу на Qt511 изучаю работу с сетью, у меня есть веб приложение на flask по этому адресу: вот на страницу возвращается то, что возвращает...

129
std::promise в C++

std::promise в C++

Изучаю многопоточность в C++Никак не могу понять, что такое std::promise, для чего он нужен и почему так называется? Объясните, пожалуйста

178
Странно работает функция C++

Странно работает функция C++

В программе пишутся координаты и длина линиипочему-то не работает х6 y3 длина 3

169