【发布时间】:2013-04-19 09:49:47
【问题描述】:
我正在处理一个类型的函数:
int xyz(int input[])
我无法访问 main 函数,因此不知道数组的大小。
如何找到输入数组的大小?
有没有办法知道数组的结束位置?
sizeof(input)/sizeof(int*) 给出 1,因为输入基本上是一个指针。
【问题讨论】:
-
sizeof(input)等价于sizeof(int *)。因此,sizeof(input)/sizeof(int*)将始终返回1。 -
您可以更改函数以获取额外的参数存储长度。或者,您可以将标记值存储在数组的末尾(如以 null 结尾的字符串)。
-
这不是重复的 - 在这个问题中“我无法访问主函数,因此不知道数组的大小。”因此需要一种解决方法或可能的洞察力来解决问题,而链接的问题假设您可以开始从调用者传递参数的数量。
标签: c