Papers/programming

함수 포인터

tomato13 2007. 6. 28. 14:54

typedef struct funcStr{
 void* func;
}strVar;

int func3(int arg)
{
 printf("arg = %d\n", arg);

 return 1;
}

void TestCase9(void* ts, void* tc)
{
 strVar* pstrVar = (strVar*)malloc(sizeof(strVar));

 int (*func4)(int);
 pstrVar->func = func3;             // (1)
 func4 = pstrVar->func;
 func4(1);

 free(pstrVar);

 GTF_CHECK(1);
}

 

(1)이후에

pstrVar->func(1);

과 같이 기술하면 error가 발생한다. 그렇다고

int (*(pstrVar->func))(int); 를 선언해주어도 error가 발생을 한다. 당연한 것인가? ㅡ.ㅡ