如何在C ++中将2D数组的空值显示为0?

时间:2019-03-27 21:29:49

标签: c++

我正在尝试使用2D数组(int matrix [] [])显示矩阵。 现在,在我创建数组之后,我试图将其显示回来,但是数组中始终存在空值,并且它会在空值的位置显示此数字(-858993460)。 我做了很多研究,发现数组应该在我想要的空值位置显示0,但在我的情况下不会发生。

这是我如何显示数组值: ...

for (int i = 0; i < row_num; i++)
{
    cout << " }";
    cout << endl << "{  ";
    for (int j = 0; j < column_num; j++)
    {
        cout << matrix[i][j];
        cout << "  ";
    }

}
}

...

这是我存储数组元素的方式

struct Node *temp, *r, *s;
temp = r = s = start;
int matrix[10][10];
while (temp != NULL || r != NULL || s != NULL)
{
    matrix[temp->row][r->column] = s->value;
    temp = temp->next;
    r = r->next;
    s = s->next;
}

...

程序运行时,我将1、2和2添加到数组的特定位置作为输入,而我将数组的其余部分留空。 这是输出:

{  1  -858993460  -858993460   }
{  2  -858993460  -858993460   }
{  -858993460  2  -858993460   }

2 个答案:

答案 0 :(得分:0)

因此,当您第一次初始化数组时,没有什么要求数组中必须有全0或NULL值。在将那部分内存分配给数组之前,它将拥有内存中的任何内容。您应该在程序的开头,遍历矩阵并将所有值设置为0,然后继续。您也可以通过调用memset摆脱困境

答案 1 :(得分:0)

请先将2d数组初始化为0。

int arr[10][10] = {0} 

为避免编译器输入任何垃圾值。