void 포인터 배열의 값을 다른 함수에 전달하는 방법은 무엇입니까?c void 포인터 배열 인쇄
함수 파라미터의 의미는 요소
- 무효 포인터이다. 지. 배열 요소 크기의
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()
함수 배열 값을 전달? 바이트 단위로 측정 I -, 각 요소의 크기를 알고 쉬운 방법은 (int *)p[j]
,하지만 난 당신의 함수에서 두 값 유형 (double
, int
)
@iharob 흠 ... 나는 * (void *) (p + sz * i)가 작동하는 것처럼 보이기 때문에 2 개의 함수가 유일한 방법이라고 생각하십니까? – user2637015
@barakmanos 오류가 발생합니다 – user2637015
http://stackoverflow.com/a/27269430/971127 – BLUEPIXY