在c中查找两个指向选项卡的指针之间的间隔

时间:2012-12-04 13:32:17

标签: c arrays function pointers element

我想知道在带有函数的两个指针之间有多少元素。

例如,在此代码中,nb将为20.

int main(void)
{
  int t[50] = {0};
  int nb;

  nb = finding_number_element(&t[10], &t[30]);
  return (0);
}

你有个主意吗?

2 个答案:

答案 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);

}