2011-04-06 108 views
0

說我有一個結構,如何檢查空指針

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] = &rm[j] // this is how I point the door to an other room, works fine too. 

但是當我檢查的strlen或空,假設我只能從房間1分配一個門房間2,會議室1莫名其妙有不止一個非空門。

有沒有辦法檢查門是空的還是不是?

感謝

+0

你是什麼原因使用'struct'而不是'Object'? – FreeAsInBeer 2011-04-06 13:08:20

+0

其賦值要求,頭文件給出。 – Jono 2011-04-06 14:01:59

回答

2

當初始化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; 
}; 
+0

非常有意義,非常感謝pmg =] – Jono 2011-04-06 13:25:36