正在运行时查找数组的大小
Finding size of array at run time
可能重复:
如何查找的大小(指向数组的指针)
我正在将一个数组传递给一个函数。是否有任何方法可以在该函数中找到数组的大小。
我不认为sizeof函数的作用是将指向数组第一个元素的指针传递给该函数。
sizeof(arr)/sizeof(arr[0])
我认为上面的代码不起作用。还有别的办法吗。。。
谢谢。。。
使用原始数组,一旦将其作为指向函数的指针传递,就没有简单可靠的方法来查找其大小。(例如,我不认为从二进制文件中读取调试信息很简单。)
在C++中,您可能应该使用std::vector<YourType>
,然后您可以很容易地找到它。
在C中,您必须确保传递大小和指针。
如果您的c++标记是严重的,您可以使用std::vector
,因为它保留了大小信息vec.size()
。否则,您需要将大小传递给函数,或者使用结构/类将数组和大小保持在一起。
如果只有指向第一个元素的指针,那么没有,就无法知道数组的大小。如果你真的需要知道尺寸,你有几个选择;
- 使用正常数据中不存在的值终止数组(例如,C用于终止字符串的\0或指针数组中的NULL)
- 将数组的长度与数组一起传递
- 更改为知道大小的数据类型,如std::vector(不是C中的选项,但您也标记了C++)
- 创建您自己的结构,该结构可以包含size+数组指针,并传递该指针
不,没有。这就是为什么C标准库中所有合理的函数都会传递一对(pointer, size)
作为参数。在C++中,约定是传递两个指针,而不是(start, end)
,这几乎是等价的。
相关文章:
- 在数组中查找总计
- 在二维数组中查找最小值和最大值?
- 如何查找哪个类对象位于数组的特定索引上(多态性)
- 查找自动生成键并具有线性内存消耗的小型关联数组
- C++ 使用存储在动态数组中的文本文件中的数据查找模式
- 查找数组中第一个最小值和最后一个最大值元素之间的算术平均值
- 如何使用数组查找标准偏差
- 从列表到数组C 查找模式或最常见的数字
- 12个元素的数组 - 查找计数实践
- 使用数组查找HCF,获取未知输出(C )
- C++constexpr数组查找:内存开销?其他问题
- C++字符数组查找/替换字符
- 动态数组查找能力
- 用.用数组查找.C++
- 使用数组查找最大值
- 字典查找与数组查找;数组分配与字典分配
- 使用数组查找最接近的数字C++,浮点
- 定义一个非常大的数组(查找表)的最佳方式是什么
- Std::数组查找最大值函数
- Python在简单数组查找上的小循环的性能问题