我想知道在带有函数的两个指针之间有多少元素。
例如,在此代码中,nb将为20.
int main(void)
{
int t[50] = {0};
int nb;
nb = finding_number_element(&t[10], &t[30]);
return (0);
}
你有个主意吗?
答案 0 :(得分:1)
尝试
int finding_number_element(int *a, int *b)
{
return (b - a);
}
如果a和b指向同一个数组,那么它应该可以工作。
答案 1 :(得分:1)
如果你需要一些不关心t
数据类型的东西#define ele_size(x) sizeof(x[0])
int main(void)
{
int t[50] = {0};
int nb;
nb = finding_number_element(ele_size(t),&t[10], &t[30]);
return (0);
}
int finding_number_element(unsigned int ui_ele_size, void *a, void *b)
{
unsigned int ui_pointer1 = (unsigned int)a;
unsigned int ui_pointer2 = (unsigned int)b;
return ((b - a)/ui_ele_size);
}