Allepta
@Allepta

Как проверить элемент на NULL?

Приветствую, есть структура. К примеру:

typedef struct user
{
  char *name;
}user_t;


Как сделать проверку переменной name на NULL, если структуре не была выделена память через malloc/calloc, то есть обращение к элементам реализуется через user_t usr; usr.name = "NAME";
Если я проверяю переменную if(usr.name) то она всегда не NULL.
  • Вопрос задан
  • 105 просмотров
Пригласить эксперта
Ответы на вопрос 2
@vanyamba-electronics
user_t usr;
usr.name = 0;
...
if (usr.name == 0)
   ...
else
   ...
Ответ написан
CityCat4
@CityCat4
Внимание! Изменился адрес почты!
user_t usr;
usr.name = NULL;

if ((void *) usr.name == NULL)
  выделяем память сколько надо
 else
    память выделена, можно работать

Первое присвоение - нужно, потому что сразу после обьявления в usr.name - мусор. Явное приведение к viod не обязательно, но компилятор может матюгаться на несовместимые типы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы