как проверить наличие пустых указателей

#objective-c #c

#objective-c #c

Вопрос:

допустим, у меня есть структура,

 struct room{
char name[21];
int num1;
int num2;
struct room *doors[4];

};
  

итак, задано количество комнат ,

 struct room rm[Number_of_room];
  

и каждая комната:

 scanf(name | num1 | num2)
strcpy(rm[i].name, name)
rm[i].num1 = num1
rm[i].num2 = num2
  

все это отлично работает.

Пока я не хочу скорее проверить, указывает дверь на что-то уже или нет,

 UP=0, RIGHT=1, DOWN=2, LEFT=3

rm[i].doors[0] = amp;rm[j]   // this is how I point the door to an other room, works fine too.
  

но когда я проверяю наличие strlen или null, предположим, я назначаю только одну дверь из room1 в room2, room1 каким-то образом имеет более одной непустой двери.

Есть ли способ проверить, пусты двери или нет?

Спасибо

Комментарии:

1. По какой причине вы использовали struct для этого вместо Object ?

2. это требование к назначению, указан файл заголовка.

Ответ №1:

При инициализации нового объекта struct room типа установите для его doors элементов значение NULL. После этого сравните с NULL и найдите, установлены ли они уже

 struct room object;
object.doors[0] = NULL;
object.doors[1] = NULL;
object.doors[2] = NULL;
object.doors[3] = NULL;

if (object.doors[2] != NULL) {
    /* already assigned something */
    /* maybe reset? */
    object.doors[2] = NULL;
};