Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个例子如下:
我有一个结构:
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 的值。
任何帮助将不胜感激。
您不能,因为您不能将数组传递给函数(或就此返回它们)。当您将数组作为参数传递时,它会衰减为指向第一个元素的指针。您还必须传递大小。
想想看;如果您实际上可以传递一个数组(不是指针!它们是不同的动物。),为什么所有这些标准库函数都需要一个指针和大小?
你必须通过尺寸..没有这个你找不到尺寸..