関数を使用して、タブへの2つのポインターの間に要素がいくつあるか知りたいのですが。
たとえば、このコードでは、nbは20になります。
int main(void)
{
int t[50] = {0};
int nb;
nb = finding_number_element(&t[10], &t[30]);
return (0);
}
アイデアはありますか?
試す
int finding_number_element(int *a, int *b)
{
return (b - a);
}
aとbが同じ配列へのポインタになる場合、これは機能するはずです。
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);
}