【发布时间】:2014-12-22 11:23:56
【问题描述】:
如何将空指针数组的值传递给其他函数?
函数参数的含义是
- 指向元素数组的空指针
- 数组元素大小,例如。 G。
sizeof(int) - 数组元素个数大小
我怎样才能printf void 指针数组?
void sorting(void* p, int sz, int n, int (*pf)(void*, void*))
{
int i, j;
for (i = 0; i < n - 1; ++i)
for (j = i + 1; j < n; ++j)
if (pf(/*?*/, /*?*/) > 0)
/*swap function*/
}
int cmp_int(void* p1, void* p2)
{
if (*(int*)p1 < *(int*)p2) return -1;
if (*(int*)p1 > *(int*)p2) return +1;
return 0;
}
int cmp_dbl(void* p1, void* p2)
{
if (*(double*)p1 < *(double*)p2) return -1;
if (*(double*)p1 > *(double*)p2) return +1;
return 0;
}
int main(void)
{
int a[] = { 4, 3, 2, 6, 5, 1, 7, 8 };
int an = sizeof(a) / sizeof(*a);
double b[] = { 4.4, 6.6, 2.2, 3.3, 8.8, 1.0, 0.0 };
int bn = sizeof(b) / sizeof(*b);
int i;
sorting(b, sizeof(double), bn, cmp_double);
sorting(b, sizeof(int), an, cmp_int);
}
如何将数组值传递给sorting()中的pf()函数?
简单的方法是(int *)p[j],但我想使用两个值类型(double,int)
【问题讨论】:
-
@iharob 嗯...我认为像这样的 *(void *)(p + sz *i) 可以使 2 个函数成为唯一的方法?
-
@barakmanos 发生错误
-
@BLUEPIXY 谢谢它很好用