首页 >后端开发 >C++ >如何确定传递给 C 函数的数组的大小?

如何确定传递给 C 函数的数组的大小?

Patricia Arquette
Patricia Arquette原创
2024-11-26 08:18:10375浏览

How Can I Determine the Size of an Array Passed to a C   Function?

确定传递给 C 函数的数组大小

为了确定传递给 C 函数的数组的大小,至关重要的是了解数组作为函数参数的基本行为。当数组用作函数参数时,会退化为指针。因此,sizeof 运算符在确定数组的真实大小方面变得无效。

代码中的错误方法

提供的代码片段尝试使用 sizeof(p_vertData)检索数组的大小。然而,这种方法是有缺陷的。数组 p_vertData 在传递给 makeVectorData 函数时降级为指针。 sizeof 运算符随后返回指针的大小,而不是数组的大小。

正确方法

遗憾的是,没有万无一失的方法可以确定作为参数传递给 C 函数的数组。数组的大小必须作为附加参数显式传输给函数。

修订后的代码

void makeVectorData(float p_vertData[], int size) {
  // Use the provided size to work with the array
}

此修订后的代码通过合并附加参数解决了该问题, size,它显式地将数组的大小传递给 makeVectorData 函数。

以上是如何确定传递给 C 函数的数组的大小?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn