gpt4 book ai didi

arrays - 在 C 中创建一个函数来返回一个 int 数组的长度

转载 作者:行者123 更新时间:2023-12-03 18:39:31 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Finding length of array inside a function [duplicate]

(7 个回答)


9 个月前关闭。




我是 C 编程的新手。我想创建一个函数,它将整数数组作为参数并返回数组的长度。我知道下面的代码正确计算了长度。

    int arr[] = {1, 2, 3, 4, 5};
int length = sizeof(arr) / sizeof(arr[0]);
但是如果我创建一个像下面这样的函数并将数组作为参数传递,它就不起作用。
    int length_of(int* arr) {
return sizeof(arr) / sizeof(arr[0]);
}
我的猜测是我没有正确地将数组传递给函数。实现这一点的正确方法是什么?

最佳答案

好吧,没有办法从函数中完成这项工作。任何作为参数传递给函数的数组都将衰减为指针类型(指向第一个元素)。因此,在被调用的函数中,您将获得的只是一个指针的大小。
实现这一点的间接方法是使用名为 sentinel value 的东西。在数组中,从被调用的函数中,遍历数组元素以在递增计数器的同时查找标记值,一旦找到,就取该计数器的长度。

关于arrays - 在 C 中创建一个函数来返回一个 int 数组的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65714543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com