如何知道数组是否在C中初始化

Was*_*eem 0 c arrays null strlen

如何知道数组是否在C中初始化?像strlen()这样的函数没有帮助我,因为我不想知道数组是否为空.

Hen*_*olm 5

没有办法在运行时测试它 - 一个未初始化的数组看起来就像一个用垃圾初始化的数组.

根据你在做什么,你需要要么以确保阵列实际上是初始化显式地绕过,告诉您该数组中的值是否是有意义的又一个标志.

还要注意"数组是否为空"在C中不是一个非常有意义的概念.数组就在那里,并且它总是包含表示它声明的元素所需的任意数量的位.这些位可能没有有意义的值,但始终存在.

  • 从技术上讲,这是未定义的行为,不一定是垃圾值。此外,在 C 标准中有一个定义明确的概念,称为“不确定值”。虽然您所说的在某些 C 实现中可能是正确的,但与语言的抽象级别并没有真正相关;数组在内存中的表示方式(如果有的话)只是一个实现细节。 (2认同)