Исправить ошибку "не найден бинарный оператор" - C (СИ)
Формулировка задачи:
if (r!=NULL)
struct TreeNode
{ int inf;
struct TreeNode *left, *right;
};Решение задачи: «Исправить ошибку "не найден бинарный оператор"»
textual
Листинг программы
struct TreeNode r; //r - готовая структура с неинициализированными полями.
//В таком виде ее никак не проверишь, по-этому лучше инициалзировать так:
memset (&r, 0, sizeof(struct TreeNode)); //а уже после этого проверять можно, например, так:
if(r.left || r.right || r.inf){/*что-то в этом есть...*/}
struct TreeNode *r; //неинициализированный указатель - не проверить никак
struct TreeNode *r = 0; //проверять так:
if(*r){/*инициализирован*/}
Объяснение кода листинга программы
- Объявляется структура
TreeNodeс полемr. - Указатель
rинициализируется какNULL(или как0). - Функция
memsetиспользуется для инициализации структурыTreeNodeнулями. - Если поля
left,rightилиinfструктурыTreeNodeне равныNULL, то это означает, что структура была инициализирована. - Поле
rструктурыTreeNodeне инициализируется и остается неинициализированным. - Указатель
rинициализируется какNULL(или как0). - Если указатель
rне равенNULL, то это означает, что указатель был инициализирован.