C 当数组从main传递到另一个函数时,如何查找整数数组长度?
如何从用户定义的函数中获取arrayLengthC 当数组从main传递到另一个函数时,如何查找整数数组长度?,c,C,如何从用户定义的函数中获取arrayLength int getArrayLength(int *arr){ //our logic return result; } 简单地说:你不能。您应该将其作为另一个参数传递: int getArrayLength(int *arr, int size){ ... 如果您尝试使用sizeof,它将返回指针的大小。您还可以使用特殊值来指示数组的最后一个元素(如0表示字符串),但添加约定会使事情变得更复杂。简单地说:您不能。您应该将其作为另一个
int getArrayLength(int *arr){
//our logic
return result;
}
简单地说:你不能。您应该将其作为另一个参数传递:
int getArrayLength(int *arr, int size){ ...
如果您尝试使用sizeof,它将返回指针的大小。您还可以使用特殊值来指示数组的最后一个元素(如0表示字符串),但添加约定会使事情变得更复杂。简单地说:您不能。您应该将其作为另一个参数传递:
int getArrayLength(int *arr, int size){ ...
如果您尝试使用sizeof,它将返回指针的大小。您也可以使用特殊值来指示数组的最后一个元素(如0表示字符串),但添加约定会使事情变得更复杂。也将数组长度传递给函数,否则您无法传递。这是因为
sizeof(arr)
将给出指向int
的指针的大小,而不是整个数组的大小 也将数组长度传递给函数,否则无法传递。这是因为sizeof(arr)
将给出指向int
的指针的大小,而不是整个数组的大小 您需要做以下两件事之一:
在某些特定情况下,选项2工作得相当好。例如,
\0
用于标记字符串的结尾,这些字符串只是字符数组。如果0
不是数组元素的有效值,则这可能适用于字符串以外的情况。但一般来说,选择选项1。您需要做两件事之一:
在某些特定情况下,选项2工作得相当好。例如,
\0
用于标记字符串的结尾,这些字符串只是字符数组。如果0
不是数组元素的有效值,则这可能适用于字符串以外的情况。但是,一般来说,使用选项1。一种可以确定长度的方法是将最后一个元素设置为0的定界符值,或者将大小与ARR一起传递。但是,第一个方法是不推荐的。这可能是考虑切换到更高级别的语言投票的时候,因为问题是复制是多余的。特别是当1)OP是SO的新成员时。2) 这个问题问得很清楚,也很简洁。确定长度的一种方法是将最后一个元素设置为类似于0的分隔符值,或者在第一个方法是不推荐的。这可能是考虑切换到更高级别的语言投票的时候,因为一个问题是重复过度,特别是当1)OP是新的。2) 这个问题被清楚简洁地提出。提出的概念与其他答案相似,但比其他答案有所改进,并且陈述得很好,有很好的支持理由。像这样,您验证了sentinel值的使用+1提出的概念与其他答案相似,但比其他答案有所改进,陈述充分,有充分的支持理由。像这样,您验证了sentinel值的使用+1.