2011-04-06 92 views
0

我想使用'如果'條件來檢查一個對象的位置是否爲空。我正在使用雙指針。請參閱下面的代碼:如何檢查雙指針空的空間(NULL)

void show_room :: buy_car(int clmn, int row) 
{ 
    int row = row; 
    int clmn = clmn; 
    string car_door_col; 
    string temp1; 
    float temp2; 
    int temp3; 
    int n=0, i; 
    this->HBM = new show_room*[3]; 

    for(int i=0; i<3; i++) 
    {    
     this->HBM[i] = new show_room[4]; 
    } 

    for(int j=0; j<row; j++) 
    { 
     if(this->HBM[clmn][row] == NULL) 
     { 
     } 
    } 
} 

在這個循環中:

for(int j=0; j<row; j++) 
{ 
    if(this->HBM[clmn][row] == NULL) 
    { 

    } 
} 

我想檢查是否有在[clmn] [行]或不是一個對象,我使用NULL的這是錯誤的。我該如何實現這一點。在這方面請幫助我。

+0

什麼是show_room?一類? – walkingTarget 2011-04-06 14:08:39

+3

爲什麼哦爲什麼你這樣做:'int row = row; int clmn = clmn;' – meagar 2011-04-06 14:24:56

+0

是show_room是一個類。 – Rafay 2011-04-06 14:29:00

回答

1

假設你已經初始化HBM元素爲0,而你記住刪除它們指向的對象後,將其重置爲0,你可以簡單地做:

if(this->HBM[clmn][row]) { 
    // ... 
} 
+0

請考慮這個情況...... HBM [0] [2]有一些東西,而HBM [0] [1]是空的。現在我試圖執行一些操作來檢查HBM [0] [1]是否爲空。請幫忙。 – Rafay 2011-04-06 14:33:38

+0

@Spoilt那到底是什麼問題?按照我的建議循環「HBM」並用「if」測試每個元素。這會告訴你該元素是否爲空。 – meagar 2011-04-06 14:34:53

+0

那麼支票在哪裏?你寫的Wat會不會檢查NULL條件?對不起,我是愚蠢的,但仍請幫助.. – Rafay 2011-04-06 14:38:47

0

的問題是new show_room[4]不會創建show_rooms的四個指針,而是連續創建四個show_rooms。

+0

是的,這是真的....多數民衆贊成我沒有。 – Rafay 2011-04-06 14:56:59

+0

仍然是我的問題沒有解決.. :( – Rafay 2011-04-06 15:08:01

0

您編寫它的方式,您只是構建一個二維數組show_room[3][4](與動態存儲)。調用new意味着每個對象都被構造,所以沒有「缺失值」或「空白空間」。

當你說HBM[i][j],恰恰是兩件事情可能發生:

  • 無論i < 3j < 4,你獲得一個有效的​​對象的引用,或
  • 您蒙受未定義行爲。

沒有別的事情會發生。