我有一个例子如下:
我有一个结构:
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的值。
非常感谢任何帮助。
答案 0 :(得分:3)
你不能因为你不能将数组传递给函数(或者为此而返回它们)。当您将数组作为参数传递时,它会衰减到指向第一个元素的指针。你也必须传递大小。
想一想;如果你实际上可以传递数组(不是指针!它们是不同的动物。),为什么所有这些标准库函数都会占用指针和大小?
答案 1 :(得分:0)
你必须传递大小..没有这个你找不到大小..