-2

関数を使用して、タブへの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 に答える