簡體   English   中英

如何在雙指針中檢查空白(NULL)

[英]How to check an empty space (NULL) in double pointers

我正在嘗試使用'if'條件來檢查對象的位置是否為空。 我為此使用雙指針。 請參見下面的代碼:

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] [row]是否存在對象,並且對此我使用了NULL,這是錯誤的。 我應該如何實施呢? 請在這方面幫助我。

假設您已經將HBM的元素初始化為0,並且記得在刪除它們指向的對象后將其重置為0,則只需執行以下操作:

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

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

編寫方式僅是構造一個二維數組show_room[3][4] (帶有動態存儲)。 調用new意味着構造每個對象,因此不存在“缺失值”或“空白”。

當您說HBM[i][j] ,可能會發生以下兩種情況之一:

  • i < 3j < 4 ,或者您獲得對有效show_room對象的引用,或者
  • 您招致不確定的行為。

什么都不會發生。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM