c - 如何在不计算长度或将长度作为参数传递的情况下获取函数中的数组大小?

标签 c arrays

我尝试使用 sizeof(array)/sizeof(int),但如果我将数组传递给另一个函数,这似乎不起作用。那么有没有其他方法可以知道数组的大小呢?

顺便说一句:我知道 char[]'\0' 结尾;哪个字符结束 int[]

最佳答案

在 C 语言中,数组 和指向数据的指针是有区别的。当“将数组传递给函数”时,您实际上传递了一个指向函数的指针。不幸的是,您无法知道一个指针是指向一个元素还是指向一个元素序列,也无法判断该序列由多少个元素组成。

此外,与字符串不同,int 数组不以特定值结尾。

关于c - 如何在不计算长度或将长度作为参数传递的情况下获取函数中的数组大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7599487/

相关文章:

javascript - 节点映射并将结果过滤到新数组中

java - 如何检查数组元素是否相同

从 system() 更改为 exec(),它会加速我的代码吗?

c - AddressSanitizer 中的 "shadow bytes"是什么,我应该如何解释它们?

android - C源文件交叉编译到Android Arm

c - 使用两个 for 循环找到最不频繁的数字?

arrays - Bash 从文件读取到关联数组

c - ARM 上的反向弦

c++ - C 和 C++ 代码互操作性 - 数据传递问题

计算未初始化字符数组的长度