Pointer에 관한 흥미로운 예제

익명 사용자의 이미지

#include

void void_test(void ** );

struct sa
{
int a;
int b;
};

main()
{
int a = 13, b = 15;
struct sa s_a;
void *array[100];

array[0] = (void *) &a;
array[1] = (void *) &b;
array[2] = (void *) &s_a;

void_test(array);
printf("a %d b %d s_a.a %d s_a.b %d\n", a, b, s_a.a, s_a.b);
}

void void_test(void ** array)
{
*(int *)array[0] = 55;
*(int *)array[1] = 66;
(*(struct sa *)array[2]).a = 88;
(*(struct sa *)array[2]).b = 99;
}