-2

我想知道两个指向选项卡的指针之间有多少个元素,带有一个函数。

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

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

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

你有想法吗?

4

2 回答 2

1

尝试

int finding_number_element(int *a, int *b) 
{
  return (b - a);
}

如果 a 和 b 将是指向同一个数组的指针,这应该可以工作。

于 2012-12-04T13:57:55.243 回答
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);

}
于 2012-12-04T14:49:58.323 回答