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

时间:2013-10-16 22:23:24

标签: 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;
}

谢谢!

1 个答案:

答案 0 :(得分:7)

你不能把它作为一种功能。你可以把它做成一个宏。

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