我正在尝试使用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 }
答案 0 :(得分:0)
因此,当您第一次初始化数组时,没有什么要求数组中必须有全0或NULL值。在将那部分内存分配给数组之前,它将拥有内存中的任何内容。您应该在程序的开头,遍历矩阵并将所有值设置为0,然后继续。您也可以通过调用memset摆脱困境
答案 1 :(得分:0)
请先将2d数组初始化为0。
int arr[10][10] = {0}
为避免编译器输入任何垃圾值。