Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在C+中将2D数组的空值显示为0+;?_C++ - Fatal编程技术网

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

C++ 如何在C+中将2D数组的空值显示为0+;?,c++,C++,我正在尝试使用2D数组(int-matrix[])显示矩阵。 现在,在我创建了数组之后,我尝试将它显示回来,但是数组中总是有空值,它在空值的位置显示了这个数字(-858993460)。 我做了很多研究,发现数组应该在空值的位置显示0,这是我想要的,但在我的例子中没有 以下是我显示数组值的方式: 当程序运行时,我将1、2和2添加到数组中的特定位置作为输入,并将数组的其余部分留空。 以下是输出: { 1 -858993460 -858993460 } { 2 -858993460

我正在尝试使用2D数组(int-matrix[])显示矩阵。 现在,在我创建了数组之后,我尝试将它显示回来,但是数组中总是有空值,它在空值的位置显示了这个数字(-858993460)。 我做了很多研究,发现数组应该在空值的位置显示0,这是我想要的,但在我的例子中没有

以下是我显示数组值的方式:

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

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

因此,当您第一次初始化数组时,并不需要数组中包含所有0或空值。在为数组分配内存之前,它将拥有内存中的任何内容。您应该在程序开始时,遍历矩阵并将所有值设置为0,然后继续。您也可以通过调用memset逃脱惩罚。请先将2d数组初始化为0

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

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

temp=r=s=start
-那么为什么要为同一件事使用3个不同的变量呢?这是为了启动链表数据检索过程,所以我将所有值设置为start。
矩阵
包含
int
类型的值。它不能包含NULL。始终初始化变量:
int-matrix[10][10]={0}这不是正确的方法,因为它会消耗更多的内存来初始化变量:int matrix[10][10]={0};Amadeus这是正确的方法再次感谢Amadeus@ahmedselim它不会消耗更多的内存;只要你说
int-matrix[20][20]
(或任何维度),内存就会被分配。根据矩阵的范围,使用memset可能比静态初始化慢
;它可能在编译过程中被初始化。如果不初始化它,编译器不会创建垃圾值。或任何值。相反,内存中该点已经存在的任何数据都将被解释为
int
s。这就是我对垃圾值的含义。编译器必须输出一些东西。这是垃圾,因为这些值与我们需要的无关。理论上,一个平台具有一个字节内存的状态位,该字节只写(直到初始化)和陷阱(停止程序)如果它是从中读取的,那么使用未初始化的将是一种危险的垃圾值。@Ray:这是幼稚的,通常是错误的。当编译器看到该值从未被初始化或赋值时,它甚至可能不需要访问该内存,而是执行其他操作,如“创建”垃圾值。@AnT访问未初始化的变量是未定义的行为,因此可以自由执行。(仅仅拥有未初始化的变量是完全合法的)。由于它是未定义的,编译器可以自由地将垃圾值写入这些位置。它还可以将垃圾值写入任何其他位置,或爆炸,或打印德国巧克力蛋糕的配方。一旦我们将未定义的行为引入到混合中,假设它将做一件特定的事情,比如创建垃圾值,也不是正确的方法。但你是对的,我们不能依赖任何东西。
{  1  -858993460  -858993460   }
{  2  -858993460  -858993460   }
{  -858993460  2  -858993460   }
int arr[10][10] = {0}