Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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_Arrays - Fatal编程技术网

C数组元素初始化

C数组元素初始化,c,arrays,C,Arrays,如果不初始化数组中的元素,则可以在调试时看到它们被分配了一个随机的大数字。 想知道这个数字是如何确定的吗?这些值已经存在于分配数组空间的内存中。因此,这里没有“决心” 从技术上讲,读取未初始化的变量是未定义的行为。它们可以是任何内容,从剩余内存垃圾到编译器预定义值。当您声明数组时,将添加堆栈指针,然后返回第一个元素的地址。仅此而已,内存中的数据不会更改。不,这不是未定义的行为。只有当这些值对应于类型的陷阱表示时,才是未定义的行为。我不知道当前有哪种体系结构具有整数类型的陷阱表示。@Jens Gu

如果不初始化数组中的元素,则可以在调试时看到它们被分配了一个随机的大数字。
想知道这个数字是如何确定的吗?

这些值已经存在于分配数组空间的内存中。因此,这里没有“决心”

从技术上讲,读取未初始化的变量是未定义的行为。它们可以是任何内容,从剩余内存垃圾到编译器预定义值。

当您声明数组时,将添加堆栈指针,然后返回第一个元素的地址。仅此而已,内存中的数据不会更改。

不,这不是未定义的行为。只有当这些值对应于类型的陷阱表示时,才是未定义的行为。我不知道当前有哪种体系结构具有整数类型的陷阱表示。@Jens Gustedt:事实上,在其他相关主题中,似乎有一场关于如何称呼这种情况的辩论。建议?C11有以下几种:不确定值—未指定值或陷阱表示,以及未指定值—相关类型的有效值,其中本国际标准对在任何情况下选择哪个值都没有要求—您的答案与我的问题实际上没有任何关系。我问随机数据是如何进入(或如何确定)未初始化的数组元素的