c - 获取C中参数传递的数组的元素数?

标签 c

<分区>

谁能帮我解决这个问题?

我认为这是不可能的……除非我传递另一个带有大小的参数?我想避免它。

我该怎么做?

int size(int *array){
    return (sizeof(array) / sizeof(int));
};

int main(int argc, const char * argv[])
{
    int array[] = {1,2,3,4};

    printf("%d", size(array) );

    return 0;
}

谢谢!

最佳答案

你不能把它作为一个函数来做。不过,您可以将其作为宏来执行。

#define SIZEOF_ARRAY(array) (sizeof(array) / sizeof(*array))

关于c - 获取C中参数传递的数组的元素数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19415015/

相关文章:

c - 为什么我在每个 "Expected expression"时都会收到 "else"错误?

c++ - Arduino有平台宏吗?

c - 重新定义;不同的基本类型

c - 没有类型声明的linux内核代码不是注释,这是什么意思?

C:函数不会循环运行并从文件中读取

c - 左值必需

c - 如何在c中的数组中使用float

c - 寻找最小值和最大值

c - 列表到列表分配变成垃圾

c - 如何将 dma_alloc_attr() 与 DMA_ATTR_NO_KERNEL_MAPPING 一起使用?