在C中获取数组的大小

时间:2013-04-19 05:11:15

标签: c arrays pointers sizeof

我有一个例子如下:

我有一个结构:

typedef struct e{

    int *(array[2]); <---in my case this array is a [2][69]

}Example;

然后这个,如果我有一个函数,如:

int funct(Example *e);

如何获得数组的大小?

我试过了:

int size =(sizeof(e->array[0])/sizeof(int));

但它没有返回69的值。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

你不能因为你不能将数组传递给函数(或者为此而返回它们)。当您将数组作为参数传递时,它会衰减到指向第一个元素的指针。你也必须传递大小。

想一想;如果你实际上可以传递数组(不是指针!它们是不同的动物。),为什么所有这些标准库函数都会占用指针和大小?

答案 1 :(得分:0)

你必须传递大小..没有这个你找不到大小..