В функции необходимо сделать проверку пустой ли указатель или нет - C (СИ)
Формулировка задачи:
Помогите разобраться.
Существует указатель на структуру. Этот указатель (его адрес передается в функцию). В функции необходимо сделать проверку пустой ли указатель или нет.
По сути это я делаю реализацию дерева на Си (не ++).
Делаю так:
Ошибка начинается на проверке на NULL. Как её правильно сделать?
typedef struct Tree
{
Word *word;
struct Tree *pLeft;
struct Tree *pRight;
} Tree;
------------
int push(struct Tree **head, char myword[])
{
if (*head == NULL) /// !! Ошибка !!
{
*head = (Tree*) malloc(sizeof(struct Tree));
(*head)->word = newWord; // ссылка на др. структуру, данные.
(*head)->pLeft = NULL;
(*head)->pRight = NULL;
return 0;
}
}
------------
int main()
{
char *buffer[30];
Tree *mytree = 0;
push(mytree, buffer);
}Решение задачи: «В функции необходимо сделать проверку пустой ли указатель или нет»
textual
Листинг программы
int push(struct Tree **node, char myword[])
{
// здесь код из первого сообщения
if (compareWords(myword, (*node)->word->word) == 1) // некое условие
push((*node)->pRight, myword); // как тут писать правильнее??
else
push((*node)->pLeft, myword);
}