嘿,我有这种类型的东西
eph_t *a;
Run Code Online (Sandbox Code Playgroud)
你可以看到类型是eph_t.它是C中的数组,但我不知道数组的大小,也不知道数组的最终元素是什么.有没有办法,我可以浏览整个数组,因为我想将数组中每个元素的值赋给某些东西.
我可以考虑哪些选择?如果您无法理解问题中的某些内容,只需发表评论,以便我可以通知您.
如果您不知道数组的大小,则迭代它是不安全的.每当您尝试读取最后一个元素之外的元素时,您将获得未定义的行为.没有什么安全的,你可以做,除非你知道数组的大小.
正如其他人所说,当你不知道数组的结尾时,迭代数组是不安全的.这通常以下列方式解决.
int a[10];).您可以使用sizeof运算符来确定数组的大小.请注意,将指向数组的指针传递给函数时,这将无效.memset是一个很好的例子)因此,如果您正在设计一个以数组作为参数的函数,请使用上述模式.如果您使用的函数不使用上述模式之一,请将问题报告给库设计器作为错误.