2

有人可以帮我解决这个问题吗?

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

我怎么能这样做?

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;
}

谢谢!

4

1 回答 1

7

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

#define SIZEOF_ARRAY(array) (sizeof(array) / sizeof(*array))
于 2013-10-16T22:27:20.317 回答